Skip to main content

Full text of "MC microcomputer 038 1985"

See other formats


MC MICROCOMPUTER - ANNO V - FEBBRAIO - N. 2/1985 SPED. ABB. POST. GRUPPO III - 70% - MENSILE - L 4000 



Datatec 

allarga gli orizzonti 
del vostro 

Personal Computer 



Integrazioni per Personal' Computerà IBM • Olivetti • ITT ■ Italtel ■ Ericsson 

Periferiche Magnetiche Rotanti • Sottosistemi di back-up 
Espansioni di memoria • Schede di emulazione 3278/3279 • Reti locali 

(ttMfeftis 

Sistemi integrativi 

00195 Roma • Via Settembrini, 28 
Tel. 06/3595840-351023 



4 

6 

8 

12 

16 

19 

28 

34 

36 

46 

52 

56 

64 

68 

75 

80 

86 

91 

95 

100 

104 

106 

111 

114 

118 

123 

131 

136 


159 Software MBasic - Un data base per 
archiviare i programmi di MC 
Pierluigi Panunzi 
163 1 trucchi del CP/M 
Pierluigi Panunzi 
168 Guidacomputer 
186 Micromarket - micromeeting 
191 Microtrade 
193 Campagna abbonamenti 
Servizio arretrati 


Indice degli inserzionisti 
Il telematico prossimo futuro 
Paolo Nuli 
Posta 
News 

Stampa estera 
Recensioni libri 
Afrodite, il tempo al computer 
Corrado Giustozzi 
MCgiochi - Life II 
Corrado Giustozzi 
MCgiochi: recensioni 
Commodore C-16 
Tommaso Paniuso 
ACT Apricot FI 
Maurizio Bergami 
Lotus Symphony per PC IBM 
Corrado Giustozzi 
Melbourne Draw per Spectrum 
Maurizio Bergami 
Handic Cale Result 
Leo Sorge 
Grafica 

Francesco Petratti 
La simulazione: dimensionamento di 
un parcheggio - Valter Di Dio 
TuttoSpectrum - Streams e channels: 
il sistema di I/O dello Spectrum 
Maurizio Bergami 
Parla più Forth: 
variabili, costanti ed array 
Raffaello De Masi 
Software MSX - La grafica 
Maurizio Bergami 
Le basi del Data Base 
Andrea de Prisco 
L'Assembler dello Z80 
Pierluigi Panunzi 
MCmicrofacile: 

alcuni algoritmi di ordinamento 

Tommaso Paniuso 

Vie da zero 

Il buffer di tastiera 

Tommaso Paniuso 

Commodore 64 - L’ADP Basic 

Andrea de Prisco 

Software Apple 

Valter Di Dio 

Software Vie 20 

Tommaso Pantuso 

Software Commodore 64 

Leo Sorge 

Software Spectrum 

Maurizio Bergami 


146 Software TI-99/4A 
Fabio Schiattarella 
150 Software 

TI-99/4A Ext. Basic 
Fabio Schiattarella 

153 Elenco 

del software disponibile 
su cassetta o minifloppy 

154 Software Sharp PC- 1500 
Fabio Marzocco 


MCmicrocomputer n. 38 (numerazione editoriale) febbraio 1985 






APPLE-minus 

per aggiungere le minuscole 
al vostro Apple II 


M/ 1 : Eprom progrommoro per Apple II delle nuove serie 
(rev. 7 e successive) L 30.000 

M/2: Eprom programmato per Apple II delle serie prece- 
denti lo 7 + circuito stampato + 2 zoccoli 24 pin + 1 
zoccolo 1 6 pin L 40.000 

M/3: come il kit M/2, basetta montata e collaudata 

L 55.000 


Descrizione: MCn. 3 - 4 - 5 - 7 





TAVOLETTA GRAFICA 
per Apple II 

5i collega allo zoccolo dei paddle dell’Apple II e consente 
di disegnare sullo schermo in alta risoluzione. È fornita 
montata, calibrata e collaudata: è compreso il piano di 
lavoro con il menu su foglio di cartoncino plastificato e un 
minifloppy con tutto il software, sia in Applesoft sia compila- 
to. L 215.000 

Descrizione: MC n. 0 - 9 - 10 - 11 - 10 



VIC-TRISLOT 

per Commodore VIC-20 

Si collega allo slot del VIC-20 e consente di installare tre 
cartucce. È costituito da un circuito stampato doppia faccio 
su vetronire. con fori metallizzati e pettine dorato, tre con- 
nettori (già soldati) professionali con contarti dorati per 
l'inserimento delle schede, piedini sul fondo della basetta. 

L 60.000 

Descrizione: MC n. 16 




Per acquistare 1 nostri kit: 

Il pogomento può essere effettuato tramite conto corrente postale 
n 14414007 Intestato a Technimedia s.r.1,. via Valsolda 135. 
00141 Roma o voglio postale Per uno maggiore rapidità, puoi 
invierà una lettera con allegato assegno di c/c bancario o circolare 
intestato a Technimedia s.r.1. Infine, puoi acquistarlo diretramenre 
presso i nostri uffici di Roma o ol nostro stand in occasione delle 
mostre. 

N.D. Specificare nell'ordine (Indicando il numero di partita IVA) 
se desideri ricevere lo fattura. 



INDICE DEGLI INSERZIONISTI 

93 Armonia - V.le Carducci 5 
31015 Concgliano Veneto (TV) 

63/ 

IV cop. Bit Computers - Via F. Domiziano 10-00145 Roma 

22 Byte Computers- Via G.B. Marino 29 -80 125 Napoli 

189 Computer House - Via Ripamonti. 194 
20141 Milano 

15 Computer Net - Via G. Gastaldi 33 
00128 Mostaccino (RM) 

18 Comtrad - Piazza Dante 19/20 - 57100 Livorno 

17 Cosmic - Via Vespasiano 56/B - Roma 

Ili cop. Datamatic - Via Valtumo 46 - 20124 Milano 
II cop. Datatec - Via L. Settembrini 28 - 00195 Roma 
74 Dei - Largo Porta Nuova 14 - 24100 Bergamo 
1 52 Discom - V ia della Pineta Sacchetti 1 63 - 00 1 68 Roma 

23 Disitaco - Via Poggio Moiano 34/C - 00199 Roma 
145 Easy Byte - Via G. Villani, 24/26 - 00179 Roma 
24/25 

26/27 Editsi - Via Pascoli. 55 - 20133 Milano 

109 Electronic Devices - Via Ubaldo Comandini, 49 
00173 Roma 

103 Felice Pagnani - Via U. Comandini 49 - 00173 Roma 
162 Flavio Marcello - Via Vicenza 27/B - 35100 Padova 

21 Franco Muzzio & C. Editori - Via Makallè 73 

35138 Padova 

99 Infotel - Via F. Domiziano 10- 00145 Roma 
14 Jetset Informatica - Via Torrevecchia 3/F - Roma 

157 Liberano Electronica- Via Circonvallazione Salentina 
19 - 73045 Leverano (LE) 

72 Load’N’Run - MK Periodici - C.s Vittorio Emanuele 
15 - 20122 Milano 

149 Memor Informatica - V. Togliatti 4 
56030 Perignano (Pi) 

174/175 Micropro International Italia - Via Frua 14 
20146 Milano 

190 Micro Shop - Via Acilia 214- 00125 Acilia (RM) 

89 Mipeco - Via delle Baleari 228 - Ostia 

94 MSX - MK Periodici - C.so Vittorio Emanuele 15 
20122 Milano 

185 New Soft - Via Stefano Jacini 4 - 20121 Milano 

1 10 Nuova Newel - Via Mac Mahon 75 - Milano 
192 Porta Portesc - Via di Porta Maggiore 95 

00185 Roma 

161 Programma 2000 - Via G. Felici 20 - 00144 Roma 

191 Pulsemaster - Via Puccini. 3 - 20035 Lissone (MI) 
44/45 Rebit Computer - V.le Matteotti 66 

20092 Cinisello Balsamo (MI) 

181 Robotics - 16 New Street. St. Peter Pori. Guernsey. 
Channcl Islands. England 

73/130 Salone dell’Informatica - E.P.I. - Via Marochetli 27 
20139 Milano 

122 Segi - Via Timavo 12 - 20124 Milano 
166/167 Siemens Elettra - Via Fabio Filzi 29 - 20124 Milano 
13 S.M.Disk - Via Tre Colonne 23 - 05100 Temi 
43 Sony Italia - Via F.lli Gracchi 30 
20092 Cinisello Balsamo (MI) 

8/10/ 

187 SVPT - Via Val Cristallina 3 - 00141 Roma 
7/9 Technimedia - AUDIOrhvibw. Via Valsolda 135 
00141 Roma 

67/84/ 

85 Telcom - Via M. Civilali 75 - 20148 Milano 

158 Transimage International - V.le Umberto Tupini 103 
00144 Roma 

1 1 3 Elle Computer - P.le della Radio 43 - 00143 Roma 

33 Tre Più- Via Asmara 58 - 00199 Roma 

90 Xebec International - Via Cola di Rienzo 149 
00149 Roma 


MCmicrocomputer n. 38 - febbraio 1985 



Se ti abboni o rinnovi l’abbonamento 
a MCmicrocomputer, puoi ricevere una confezione 
di due minifloppy Dysan, singola faccia doppia densità, 
con un supplemento di sole 3.500 lire. 

Non perdere quest’occasione! 

Ritaglia e spedisci oggi stesso il tagliando 
per sottoscrivere l’abbonamento pubblicato 
nell’ultima pagina della rivista. 

I minifloppy ti saranno spediti in una robusta 
confezione a prova di danneggiamenti postali. 


I prodotti Dysan sono distribuiti in Italia dalla 
Datamatic. Via Volturno 46. 20124 Milano. 





Il Telematico 
prossimo futuro 

Da lenta di puma, affrontalo dai primi pionieri, quello dell'alfabetizzazione informatica di massa 
si è ormai trasformato in argomento popolare: se ne parla alla radio, alla televisione, sui 
quotidiani, sui settimanali, in mille convegni, al bar, sui treni: psicologi e pedagogisti discutono sui 
prò e contro del computer nella scuola: i destinatari di tanta attenzione sono più sbrigativi: 
acchiappano il computer e lo usano; i padri narrano con orgoglio le prodezze dei propri figli di 
fronte alla tastiera : "un programma di archivio per biblioteca? Ma non c'è problema! Un 
programma alfabetico (.'). mio figlio lo prepara in poche ore sul suo Commodore 64" ( captala al 
volo sull'Ambrosiano del 14 gennaio). Ho impiegato qualche secondo a comprendere cosa il 
distinto professionista che mi sedeva di fronte intendesse per programma alfabetico, poi un lampo - 
alfabetico = senza grafica; e ho visualizzato l'immagine del padre frustrato di fronte agli sforzi di 
un figlio intento ad imitare da Basic, a forza di peek e poke. la velocità di un game grafico in 
"linguaggio macchina". 

Avviatasi irreversibilmente quella informatica, è ormai tempo di cominciare a pensare seriamente 
alla prossima alfabetizzazione di massa: quella telematica. Certo la telematica esiste più o meno 
du quando esiste il computer, ma come per arrivare ad una diffusione di massa del computer è 
stato necessario passare attraverso il drastico abbattimento dei costi reso possibile dalla 
microelettronica, perché la telematica, riservata ai militari prima e alle grandi aziende poi. si 
trasformi in risorsa pubblica occorre una altrettanto drastica riduzione dei costi e 
"sdrammatizzazione" dei servizi. 

Cos'è la telematica? A cosa serve? Come si fa? L'onere di rispondere alla prima domanda lo lascio 
volentieri ai teorici delle comunicazioni ; risponderò invece, nell'ordine, alla terza ed alla seconda: 
acchiappale un computer, un "modem" ed un telefono, chiamate un corrispondente e potrete 
scambiarvi informazioni selezionale, ovvero idee, con una celerità inimmaginabile. 

Chi ha provato a trasmettere in asincrono a 300 baud sa quanto una tale velocità di trasmissione 
possa apparire lenta, ma cosa sono pochi minuti di fronte al tempo necessario per riunire dieci 
persone intorno ad un tavolo per discutere di uno specifico argomento? O quello per discutere dello 
stesso argomento per lettera? O per inviare un piccolo annuncio ad una rivista ed attendere che sia 
pubblicato? O per recarsi presso una grande biblioteca a cercare tutto il materiale bibliografico 
relativo ad un determinato argomento? O per domandare a 50 persone se hanno un programma per 
la tale macchina in grado di fare lo scrolling inverso di riga e di quadro a velocità ragionevole? E 
poi una volta che il possessore di tale programma, magari di pubblico dominio è stato individuato, 
per scambiare una copia? 

E questi sono solo alcuni dei tanti tipi di accesso quasi istantaneo all'informazione ed alle idee reso 
possibile dalla telematica. Negli Stali Uniti, il fenomeno della telematica di massa è nato nel 1979 
con " The Source" la prima società di servizi telematici a proporre un "listino prezzi" differenzialo 
per tipo di utente e per fasce orarie. L'esempio di "The Source", letteralmente "la sorgente", 
acquistata Tanno successivo da! Reader's Digest, è stalo seguito da molte altre società che. dopo le 
6 del pomeriggio, offrono servizi telematici a prezzi popolari. 

Perché la telematica divenisse popolare è stato necessario attendere che i prezzi dei "MODEM" 

I Modulatore DEModulatore) scendessero ad un livello accettabile per il privato; e non appena 
questo evento si è concretizzato la telematica domestica è esplosa con la nascita spontanea di 
centinaia, anzi migliaia di "Computer Bulletlin Board" i cui soci possono scambiarsi messaggi e 
"messaggi circolari" depositandoli in una sorta di "casella postale" elettronica, consultare archivi, 
cedere o ricevere programmi dall'archivio programmi, partecipare a "conferenze su argomenti di 
comune interesse" facendo circolare informazioni spesso preziose ad una velocità impensabile con 
qualsiasi altro mezzo. 

Ci avviamo verso una società per la quale la dimestichezza con il mezzo telematico rappresenterà 
la discriminante tra il disporre o meno di informazioni e di idee, tra il poter fare ed il non poter 
fare. Che l'alfabetizzazione telematica sia auspicabile, oltre che indispensabile ed irreversibile, mi 
sembra scontalo, ( "è solo un problema : per fare telematica occorre una rete di canali telefonici e 
questa, a differenza dei mezzi terminali, ha costi tali da poter essere affrontati solo in sede 
pubblica. Non resta quindi che augurarsi che gli enti a questo preposti ( cioè SIP. Ministero delle 
Poste e Telecomunicazioni e Governo) sappiano seguire il fenomeno con la necessaria prontezza 
ed intelligenza. 

Paolo Nuli 


Anno V - numero 38 
febbraio 1985 
L. 4.000 

Direttore: 

Paolo Nuti 
Condirettore: 

Marco Marinacci 
Ricerca e sviluppo: 

Bo Amklit 
Collaboratori: 

Maurizio Bergami. Raffaello 
De Masi. Andrea de Prisco. 

Valter Di Dio, Corrado 
Giustozzi, Fabio Marzocca, 
Tommaso Pantuso. Pierluigi 
Panunzi. Francesco Petroni. 
Gina Principi, Fabio 
Schiattarella. Leo Sorge. 

Pietro Tasso 
Segreteria di redazione: 
Paola Pujia (responsabile). 
Giovanna Molinari 
Roberto Rubino 
Grafica e impaginazione: 
Roberto Saltarelli 
Grafica copertina: 
Studio Azcta - Roma 
Fotografia: 

Dario Tassa 


Maurizio Ramaglia 
(responsabile). 
Anna Rita Fratini. 
Pina Salvatore 
Abbonamenti ed arretrati: 
Matteo Piemontese 
Direttore Responsabile: 
Marco Marinacci 


Tel 116 SVS 654-SW 536 
© Copyright Testini media ' r I 


Pubblicità: 

Technimedia, 

Via Valsolda 135. 
00141 Roma, 
tei. 06/898.654-899.526 
Produzione pubblicitaria: 
Cesare Veneziani 


i 12 no 




febbraio, n. 2 . mensile 


Associato USPI 


MCmicrocompuler n. 38 - febbraio 1985 



Su AUDIOreview 



AUDIO 


pre THRESHOLO F£ 

•mola THRESHOLD 


■SANSU! Alia. 


/a più qualificata rivista italiana di elettroacustica 


musica elettronica 
e computer music 


g»ad «oVS?’ Mao so 


su AUDIOhwéw 

a 1 " prosegue l’ai 

■ v H o 


prosegue l’analisi dettagliata di 


«*EIST 

DE,V.^nV V,SS »"«CS 


COJiDEjysATOBI 

^Pimenti strategici 


su AUDIOreview di febbraio: 


MIDISCKIPT64 


potente editor- sequencer per tastiere MIDI e 

COMMODORE 64C 


Ogni mese su AUDIOnvicw i più qualificati articoli di teoria, prove, ascolto, progetto, autocostruzione di: audio domestico, audio professionale , 
audio digitale, musica elettronica, dischi analogici e "compact", car stereo. 

AUDIOreview e MCmicrocomputer sono pubblicazioni Technimedia 
via Valsolda 135, 00141 Roma - tei. (06) 898654/899526 




Ancora su zero alla zero... 

Gentile Redazione, 

ho letto con interesse la risposta di Corra- 
do Giustozzi al sig. Arcangeli e mi sembra di 
poter concludere che entrambi abbiano in 
parte ragione, essendo tuttavia necessario 
restituire a Cesare quel che è.. di Cesare. È 
infatti senz'altro vero che l'analisi matema- 
tica sia in grado di attribuire un significato 
in senso limite all 'espressione "zero alla ze- 
ro", come pure è esatto (e rigorosamente 
dimostrato da Giustozzi) che il limite per x 
tendente a zero da destra di x alla x è 1. 

Tuttavia ciò non significa che alla fórma 
indeterminata "zero alla zero "si possa attri- 
buire il valore 1 in ogni caso! Una dimostra- 
zione piu accurata mostra in effètti che alla 
suddetta espressione — significativa solo in 
senso simbolico — si deve attribuire un valo- 
re dipendente dalla situazione particolare. 
Mi spiego meglio: Corrado pone g(x)=x, 
f(x) =x, ( /unzioni infinitesime al tendere a 
zero del loro argomento x) e calcola il limite 
per x che tende a zero da destra di g(x) ~f(x), 
ottenendo come risultato ( corretto ) il valo- 
re 1. Tuttavia, si ottiene ancora lo stesso 
valore scegliendo in modo diverso la coppia 
di t unzioni f(x) eg(x)?La risposta è negati- 
va! (segue dimostrazione ohe omettiamo 
per brevità — n.d.r.) Resta cosi confermato 
il fatto che non si può affermare nul la (a 
priori) su una forma indeterminata! 

Complimenti per la rivista e... grazie per 
lo spazio riservato ai lettori più "attenti". 

Stefano Lagnaste, Roma 


SVP1 \ 

MCS System 33S 



CATEGORIA: CAD 

SCRITTO PER: APPLE II. Il PLUS. 

IBM PC. XT 

HARDWARE. 128K RAM, 1 DD.. 
ADAPTER GRAFICA A COLORI. 
PORTA GAME I/O (IBM). 

64K RAM (APPLE II. ME) 

La Computer Aided Design a 3 dimen- 
sioni sul vostro PC! Accetta input da 
digitizer o ‘Space Tablet' ed una volta 
disegnato, potete ruotare, ingrandire 
tutto od una parte, traslarlo. cancella- 
re linee, inserire commenti, farne 
proiezioni nei 3 assi ... 



Quando ho scritto la risposta al sig. Ar- 
cangeli non pensavo certo di suscitare un 
simile vespaio! A giudicare dal numero di 
lettere giunte a commento sembra che i let- 
tori di MC non aspettassero altro che l'occa- 
sione di cimentarsi in una disfida matemati- 
ca, come quelle che andavano di moda nel 
Medio Evo. Devo dire che ciò fa piacere: sape- 
re di possedere un nutrito stuolo di lettori 
che ti vagliano gli scritti parola per parola è 
quanto meno stimolante. Al contrario, mi 
dispiace che parte di questo feedback sembri 
dettato più da amore di polemica che da al- 
tro, quasi che noi si sbagliasse (anche am- 
messo) per far dispetto ai lettori: mi riferi- 
sco in particolare agli interventi dei signori 
Franco Fedeli di Caltanissetta. il quale scri- 
ve “in nome della Verità Scientifica", e Wal- 
ter Tross di Roma, che si congratula con me 
per “essere riuscito per primo ad applicare 
il teorema di De THospital ad una forma 
Infinito su infinito’, giu n gendo anche al ri- 
sultato corretto” (grazie delle congratula- 
zioni, ma non ho alcun merito: prima di me 
ci era arrivato ad esempio il Ghizzetti — cfr. 
Lezioni di Analisi Matematica, voi. I, ed. 
1972, teorr. 9.14.1 e 9. 14.11, ed anche pag. 
191 e segg.). 

Fra gli interventi più “seri" cito quelli di 
Mauro Serra di Cagliari e di Stefano Lagra- 
sta di Roma, quest'ultimo pubblicato in 
quanto maggiormente circostanziato ma 
anche per essere giunto per primo in reda- 
zione, essendovi stato portato di persona 
dallo stesso Lagrasta. 

Cercherò di chiarire adesso la questione, e 
non solo dal punto di vista matematico, spe- 
rando cosi di mettere definitivamente fine 
alla diatriba. Dunque: i vari interventi con- 
cordano tutta (a ragione ) neU'affermare che 
una cosa è una forma indeterminata ed 
un'altra è il valore limite di una particolare 
finizione in un particolare punto; sciogliere 
una forma indeterminata per un caso parti- 
colare non vuol certo dire assegnarle defini- 
tivamente il valore trovato. E fin qui tutto 
bene, non mi sognerei certo di affermare il 
contrario. Vorrei però far notare che poi, 
nella pratica, le cose cambiano. Ad esempio: 
intuitivamente si è portati a confondere il 
limite col valore nel punto, cosa a rigore non 
lecita in quanto in generale le due quantità 
possono non coincidere; ma nei casi di inte- 
resse pratico si verifica sempre che coinci- 
dono, e cosi si danno valori a quantità che in 
teoria non ne hanno, a meno di infinite pre- 
cauzioni, ma che poi vanno benissimo nella 
pratica. In questo senso si può benissimo 
dire che zero alla zero “fa" uno, sottinten- 
dendo di identificare la quantità imprecisa- 
ta “zero alla zero" con limite per x tendente 
a zero da destra di x alla x, il quale, come 
ormai sappiamo, si dimostra esistere ed es- 
sere uguale aduno. Ciò è perfettamente leci- 
to anche dal punto di vista matematico: l’ori- 
gine è si punto di discontinuità per la “x'x”, 
ma di discontinuità eliminabile, visto che il 
suddetto l i m ite esiste determinato e finito; e 
quindi la funzione risulta perfettamente de- 
finita e continua anche per x=0, dove vale 1 
( questo soprattutto per il sig. Serra). 

La questione che solleva Stefano è invece 
che non è lecito dire che 0 0 fa uno adducen- 
do il fatto che x'x in Ovale 1, e questo perchè 
esistono molte altre funzioni ( in realtà infi- 
nite) che nell'intomo di un punto diventano 


del tipo "zero alla zero", coma la "x alla x". 
ma non hanno per limite 1; e quindi non ha 
senso dire che zero alla zero “fa" 1 se non si 
precisa quale funzione si sta considerando. 
E questo è perfettamente vero. Però anche 
qui entrano in ballo considerazioni di ordi- 
ne pratico, e non vorrei che l'aver trascinato 
la questione su di un piano formale abbia 
fatto perdere di vista la portata originale del 
problema, molto più terra-terra Ricordo 
q uindi che si discuteva se fosse più o meno 
giusto che l’interprete Basic C-86 del Casio 
FP-6000 rispondesse il valore 1 all'atto di 
effettuare l'operazione 0 0, anziché segnala- 
re errore. La dimostrazione riportata a sco- 
po illustrativo nella rispostaa al sig. Arcan- 
geli serviva a chiarire che la quantità "zero 
alla zero" non è un assurdo a priori ma può 
avere anche un significato analitico, da as- 
sumere come base per attribuire ad essa un 
valore convenzionale (quando ci si metta 
d'accordo sui termini della questione). Su 
questa base, e senza entrare in troppi detta- 
gli, ritenevo di aver giustificato la mia affer- 
mazione originaria sulla correttezza del C- 
86; ma forse non ho motivato chiaramente 
la mia opinione, e quindi lo laccio adesso per 
non dare adito ad ulteriori dubbi Dunque: 
sono d’accordo che in generale alla forma 
indeterminata "zero alla zero" si possa attri- 
buire qualunque significato, in base alle par- 
ticolari finizioni scelte nel passaggio al limi- 
te-, credo però che nel caso pratico dell'inter- 
prete Basic sia piu corretta la risposta 1 che 
qualunque altra, ivi compresa la segnalazio- 
ne d'errore; e mi spiego subito. Se adottiamo 
la simbologia usata da Stefano, e consideria- 
mo il limite per x tendente a 0 + dif(x) g(x), 
vediamo che questo limite vale 1 se le due 
finizioni vanno a zero con la stessa rapidità, 
ossia sono infinitesime dello stesso ordine 
(ed in particolare se sono uguali); in caso 
contrario il limite può tendere a qualunque 
altro valore reale. Orbene, usando un calco- 
latore ci si accorge di cosa succede molto 
prima di arrivare al limite: nel caso in que- 
stione basta fare il calcolo in un punto molto 
prossimo allo zero. Ricordo che per qualun- 
que calcolatore il range dei reali non può 
avvicinarsi indefinitamente allo zero: tipi- 
camente in Basic il numero positivo più pic- 
colo rappresentabile è 1 E-38; dopodiché, con 
un salto piuttosto brusco, si passa diretta- 
mente allo zero. Benché non sia corretto dal 
punto di vista teorico, in pratica basta fare il 
calcolo (perché è questo infine che ci inte- 
ressa), anziché direttamente in x=0 ad e- 
sempto in x=lE-20; il valore di f(x) g(x) 
sarà praticamente coincidente con quello 
del limite (teorico) in x=0. Quindi non c’è 
problema di incorrere in errori dovuti al 
calcolo diretto in x = 0; al fini pratici il calco- 
lo in x= 1E-20 è più che sufficiente. 

Rimane quindi da esaminare il caso in cui 
si calcoli 0 0 direttamente, ossia non come 
limite ma come, ad esempio, operazione fra 
interi. Credo che a questo proposito il valore 


Stroncato dalla leucemia che lo aveva 
colpito poco meno di tre anni (a, Il 17 
gennaio è mancato Giancarlo Atzori, che 
fin dalla nascita della Technimedia ave- 
va prestato il suo fondamentale contri- 
buto di lavoro. Ci stringiamo intorno alla 
sua famiglia nel ricordarlo con affetto. 


MCmicrocomputer n. 38 - febbraio 1985 


AUDIO e COMPUTER 

Hai mai pensato di progettare una cassa, 
una rete di crossover.un equalizzatore...? 

Allora, oltre al programma, ti serve l’esperienza del progettista 



reeo.wn* ““JSHSn " 11 n 

" l K e S. St 



s; 


con il 

Allora rilevali con n „ ress an per rilevarli ? 

.Non hai 'Amplificata di AUDIO... 



1 sla da accettare come convenzione, e al fini 
pratici sla comunque preferibile ad una se- 
gnalazione di errore: un po' come si fa (ma 
non è la stessa cosa) con la quantità 01 (zero 
fattoriale), che, pur priva di significato teo- 
rico, viene considerata convenzionalmente 
pari ad 1 per motivi eminentemente pratici 
Ci si può chiedere allora perché scegliere 
proprio 1 come valore convenzionale da as- 
sociare all'operazione 0 0; la risposta è che 
1 “va bene" ai fini pratici, ed inoltre ha una 
giustificazione nel fatto che con la scel- 
ta “più semplice” per f(x) e g(x), ossia 
f(x )= g( x )= x, il limite per x tendente a 0 + 
di f(x)'g(x) fa proprio 1. Spero a questo 
punto di aver chiarito completamente il mio 
pensiero riguardo la correttezza del C-86: la 
intendo non dal punto di vista analitico, ma 
da quello pratico. E termino con una annota- 
zione di cronaca: in effetti non è solo il C-86 
ad adottare la convenzione "0 0 = 1 "; lo fan- 
no anche ÌKS-Baslc e diverse calcolatrici 
(TI-59 ad esempio), tanto per citare i casi 
più eclatanti II fatto che nessuno si sia mal 
scagliato contro di essi ci sembra indice del- 
la “non irragionevolezza" di questa scelta. 
Ed in definitiva (opinione personale) non 
ritengo di importanza fondamentale questo 
punto nella valutazione di un linguaggio o di 
una calcolatrice, essendo presumibilmente 
piuttosto rare le evenienze in cui si debba 
chiamare In causa direttamente la finizione 
00 . 

Approfitto infine dello spazio per ringra- 
ziare i lettori più "attenti", come li chiama 


Stefano; posso assicurarli che dei loro inter- 
venti, sempre graditi, si tiene debito conto in 
fase di realizzazione della rivista Errori ed 
omissioni da parte nostra sono purtroppo 
inevitabili (perbacco, siamo uomini anche 
noi!), ma un pubblico attento e attivo, pron- 
to allo scambio di critiche ed opinioni, ci 
permette di costruire una rivista sempre mi- 
gliore. Da parte nostra siamo sempre aperti 
al dialogo: anche su argomenti tutto som- 
mato... non vitali come il calcolo di zero alla 

Corrado Giustozzl 


C 16: caratteristiche 
e compatibilità 

Spettabile Sedazione di MC, 

vorrei porvi qualche domanda, e vi prego 
di rispondere a tutte queste mie curiosità, 
che debbono essere presenti nel cuore di un 
maniaco dei computer come me! 

(1) Quando usciranno in Italia i nuovi 
Commodore C16 e Plus 4? 

(2) Hanno lo stesso linguaggio del VIC e 
del 64? 

(3) Esiste compatibilità tra i vecchi e i 
nuovi? Voglio dire, si può usare ancora il 
registratole CZN? 

(4) Cosa potete dirmi sul prezzo del C16? 


Vi ringrazio Un d’ora per queste informa- 
Fabrizio Micale, Catania 

P.S. È possibile spedirvi dei programmi su 
cassetta, realizzati da lettori? 


MC ha pubblicato una succosa anteprima 
dei nuovi nati in casa Commodore: è stata 
pubblicata a pag. 24-25 del numero 33. Le 
sue domande trovano in gran parte risposta 
più estesa in quell'articolo (oltre che nella 
prova del C-16 che trova in questo numero), 
ma comunque ne riassumiamo qui i punti 
principali 

(1) Come avrà notato, nelle ultime setti- 
mane entrambi 1 computer sono entrati in 
distribuzione. 

(2) n Basic implementato su entrambi è 
molto più esteso della versione V2 che cono- 
sciamo, in quanto comprende anche dei co- 
mandi per gestire la grafica e il suono, quan- 
to mal opportuni dato che è stata proprio 
questa carenza a rallentare e frenare ( per 
modo di dire) il successo di entrambi VIC e 
64, ma particolarmente il secondo. Va ricor- 
dato anche che le molte differenze hardware 
tra il VIC, il 64 e adesso i nuovi C16 e Plus 4 
— che sostanzialmente hanno la medesima 
architettura interna — hanno reso talvolta 
diversa la gestione dei chip periferici 
(schermo e musica). 

Inoltre 1 nuovi hanno su Rom un pro- 
gramma di gestione del linguaggio macchi- 
na (monitor) da 4K, cosa questa estrema- 
mente importante per lo sviluppo serio di 
software, anche amatoriale. In entrambi c'è 
una verifica della sintassi delle linee al mo- 
mento dell'inserimento della linea stessa, e 
non — come al solito — al Run; il C16 ha in 
più u n a funzione di ausilio (help) che per- 
mette di scoprire gli errori di sintassi for- 
mulati nei programmi Basic. 

(3) Come leggerà nella prova del C-16. 
non siamo al momento in grado di precisar- 
lo: forse si se, come sembra, la diversità è 
solo nello spinotto. Resta il fatto che le pos- 
sibilità di nuove periferiche come i dischi 
veloci che si potranno usare con il Plus 4 e il 
C16 lasciano da parte qualunque ragiona- 
mento sulle cassette. 

(4) Il prezzo che si trova sul listino Com- 
modore è di 245.000 lire più IVA Natural- 
mente è possibile che, come per il VIC e il 64, 
in molti negozi si spuntino prezzi inferiori 

Per la domanda fatta nel P.S. le rispondia- 
mo che lei sfonda una porta aperta: come 
avrà infatti notato, MCmicrocomputer dedi- 
ca ampi spazi al software dei lettori 


Come funziona 
il comando USR? 

Sono un fortunato possessore del fantasti- 
co computer VIC-20. e da alcuni mesi mi 
sono abbonato a MCmicrocomputer. dato 
che la ritengo l'unica rivista che, oltre ad 
occuparsi dei soliti giochi (che alla lunga 
stufano) parla anche di programmi utili e 
laboriosi — valga per tutti l'assemblatore 


MCmicrocomputer n. 38 - febbraio 1985 



Ho altresì notato che anche nella rubrica 
MCposta vengono trattati argomenti molto 
validi, e quindi vorrei porvi una domanda 
relativa ad un'istruzione che secondo me è 
importantissima- 

USR (X) 

che, tra l'altro, ben pochi conoscono, dato 
che è raramente presente nei listati 

Nel manuale del VIC si dice: “fa saltare il 
programma ad una sequenza di istruzione 
in linguaggio macchina, il cui indirizzo ini- 
ziale si trova nei byte 1 e 2. Il valore di X 
viene passato al programma in LM, e questo 
ritorna un valore al programma Basic". 

È possibile saperne di più ? 

Come avviene il passaggio dei dati? 

Si potrebbe avere un esempio? 

Grazie. 

Angelo Queirolo - Genova 

Anche se il quesito riguarda 11 VIC SO, 
pensiamo che comunque questa risposta 
possa essere utile anche per i possessori di 
macchine diverse, essendo la USR presente 
In numerosi casi. 

Si tratta effettivamente di un’istruzione 
poco usata: ma ciò avviene in quanto serve 
per usi non tanto frequenti 

Il problema è relativo alla gestione del 
linguaggio macchina da usarsi unitamente 
al Basic. H computer, quando lavora in Ba- 
sic, tiene da solo il conto delle operazioni da 
eseguire. Quando si deve passare al linguag- 
gio macchina, invece, bisogna dirgli do- 
ve inizia il nuovo programma in quel 
linguaggio: ciò generalmente si fa con una 
SYS < locazione di memoria > 

e il programma in LM dovrà terminare con 
un ritorno al Basic: più o meno come succe- 
de con le istruzioni solite 

GOSUB-RETURN 

Se però la routine elabora dati numerici, 
come ad esempio succederebbe se si rifaces- 
se una routine trigonometrica, allora dob- 
biamo passare un valore, nel nostro esem- 
pio un angolo. In questo caso si usa la 

USR < parametro, 

ove il < parametro > è un angolo. Dato che è 
una funzione matematica dovremo usarla 
come tale, per cui se facciamo 
LET A = SIN (X) 

allo stesso modo dovremo digitare 
LET A = USR (X) 

Abbiamo però detto che per passare dal 
Basic al LM bisogna comunicare al compu- 
ter la locazione di memoria da cui parte il 
programma in LM: in questo caso noi non 
l 'abbiamo ancora fatto. Per farlo dovremo 
mettere questo indirizzo nelle famose loca- 
zioni 1 e 2, con un particolare formato: 

10 A = INT(< locazione >/256) 

20 POKE 1.A 

30 POKE 2, < locazione >-A*256 

40 B = USR ( < parametro > ) 

50 PRINT B 

Nel Commodore 64 la locazione di parten- 
za del programma in LM è contenuta non in 
1 e 2, bensì in 785 e 786. MC 


Selle computer 

Piazza della Radio. 43 - 00143 ROMA - tei. 06/5588773 


Importazione diretta 

Vendita diretta Spedizioni in tutta Italia 




MCmicrocomputer n. 38 - lebbraio 1985 


Pro-Lite Texas, 
portatile 80 colonne 

La Texas Instruments ha recentemente lan- 
ciato sul mercato intemazionale un nuovo com- 
puter portatile, o briefease (mobile piccolo) co- 
me vengono chiamati adesso, dalle caratteristi- 
che veramente d'avanguardia. 

Il nuovo modello si chiama Pro-Lite, ecoslerà 
circa 6 milioni di lire nella versione di base con 
256K Ram e un dischetto da 720K byte: le sue 
caratteristiche principali sono nella valigetta e 
nella compatibilità software. 

Il mobile ha dimensioni e peso leggermente 
variabili per le due versioni con uno o due floppy 
driver: 7 x 29,2 x 33 cm (47 cm con 2 floppy), c 
4.7 (6,1 con 2 floppy) Kg. 

Il display é un 12" a cristalli liquidi, con una 
pagina testo da 80 x 25 caratteri c una grafica di 
640 x 200 punti: l'elevato contrasto — regola- 
bile — rende lo schermo visibile in quasi tutte le 
situazioni d’uso. 

L'hardwarc è basato sulla versione C-Mos 
dell'8088. un microprocessore a 16 bit per il 
quale c eventualmente disponibile un coproces- 
sore aritmetico 8087. 

La Ram disponibile varia da 256 a 768K; i 
dischetti sono quelli da 3.5". 

Il sistema operativo è l'MS-DOS nella versio- 
ne 2.1. c il linguaggio c l'MS-Basic. 

Sono poi disponibili il compilatore Basic e il 
Pascal. 

Vasta è la scelta tra i programmi applicativi, 
sia realizzati dalla casa che da terzi: Multiplan 
ed altri spreadsheet, protocolli di comunicazio- 
ne con le grosse unità centrali. Wordstar ed 
Easywriter. come anche i pacchetti integrati 
Open Access e Frante work. 

La portatilità del Pro-Lite è accresciuta dal 
battcry pack, che lo rende indipendente dall’ali- 
mentazione di rete per 8 ore. (La disponibilità è 
prevista fra tre o quattro mesi). 


Texas Instruments 
02015 Citiaducale ( RI ) 


Motorola: 

supporti per il 68020 

Visto il grande successo del nuovissimo 
68020. un microprocessore a 32 bit veri, la Mo- 
torola si sta affrettando ad ultimare i sistemi di 
sviluppo basali su questo hardware: in partico- 
lare sono stati annunciati dei cross assembler 
per i sistemi Exormac e VME 10. 

Molto più complessa l'architettura del siste- 
ma modulare Benchmark 20. per la valutazione 
e il successivo studio delle caratteristiche hard c 
soft del microprocessore. Lo chassis, che contie- 
ne fino a 4 moduli in formato VcrsaBus, è com- 
pleto di alimentatore. I moduli attualmente 
disponibili sono tre. Il primo si chiama 
M68KVM04. ed implementa un microcalcola- 
tore su scheda singola basalo sulla CPU 68020: è 
già disponibile lo zoccolo per il montaggio del 
coprocessore aritmetico 68881. che lavora in 
virgola mobile. Altre caratteristiche della sche- 
da sono la memoria cache da 4K su 32 bit. e il 
bus ad alta velocità. È possibile aggiungere una 
scheda Ram dinamica di capacità da I a 4 M. 
con controllo velocità c il solilo bus ad alta 
velocità: il codice è M68KVM13. 

L'ultima possibile espansione del sistema è un 
gate array, che implementa buona parte delle 
funzioni del 68851. oltre ad avere il PMMU. la 
gestione della memoria in pagine (dall'inglese 
Paged Memory Management Unii). 

Come software si dispone ora del Monitor 
020-Bug. un asscmblcr-disasscmbler di linea, 
con possibilità di inserire dei Break, trace multi- 
pli. modifica della memoria, comunicazione con 
host computer e anche un'interfaccia a disposi- 
zione dell'utente. Nel 1“ trimestre dell'85 sarà 
disponibile anche un emulatore in tempo reale 
con analizzatore di stati logici (frequenza di la- 
voro fino a 1 6,67 MHz) per emulazione hard e 
soft del 68020 sulla stazione di lavoro HDS 400. 



Datatec distribuisce Ampex 
nel centro-sud 

La divisione computer della Ampex Italiana 
ha recentemente stipulato un accordo di colla- 
borazione con la Datatee di Roma. L'accordo 
prevede la distribuzione nel centro-sud dei nuo- 
vi sottosistemi Ampex serie Megastore. presen- 
tati allo Smau di Milano e al Comdex di Las 
Vegas. I sottosistemi, che lavorano sia con Win- 
chester da 20 MB che con un nastro da 25 MB 
(sia per back-upche come unità autonoma) han- 
no riscosso un notevole successo da parte di 
concessionari ed utenti di PC IBM, Olivetti. 
Ericsson. Italtel. Apple ed altri. 

La Datatec. leader da tempo nella fornitura di 
periferiche PC IBM c compatibili, si occuperà 
sia della distribuzione di queste nuove ed intelli- 
genti apparecchiature che dell'opportuno sup- 
porto tecnico. 


ni 25. 00195 Roma 


Helis: informatica 

nelle scuole private romane 

Per il terzo anno la Helis. a conferma del 
successo dell'iniziativa, sta svolgendo corsi in 
alcune delle principali scuole private della capi- 
tale: S. Leone Magno. Massimo, S. Giuseppe de 
Merode. Pio IX e Nazareno. I corsi sono studia- 
li appositamente per gli alunni delle scuole me- 
die inferiori e superiori, e si svolgono nelle aule 
delle scuole medesime, articolate in un unico 
livello per le medie inferiori e in tre per le supe- 
riori. Il primo livello dà per grandi linee la strut- 
tura di un elaboratore, il linguaggio Basic e l'uso 
del registratore a cassette; il secondo approfon- 
disce alcuni concetti ed insegna l'uso di periferi- 
che quali la stampante e il disco; il terzo si basa 
sulla memorizzazione di dati c sul linguaggio 
assembly. Tulli i corsi sono pratici (oltre che 
teorici), c basati su dispense: ogni computer ser- 
ve al più due studenti. 



Microdata distribuisce 
Mindset, PC grafico 

La Mie-rodata srl di Lerici ha acquisito l'esclu- 
siva sul territorio nazionale per i prodotti hard- 
soft dell'americana Mindset Corporation, di 
Sunnyvale (California): la serie è composta da 
un PC grafico con opportune compatibilità 
IBM. più 4 pacchetti applicativi in ambiente 
CAD, 

Vediamo l'hardware. Il PC si basa sul micro- 
processore 80186 con clock a 6 MHz (sistema 
operativo MS-DOS 2.0) coadiuvato da due co- 
processori VLSI custom per la grafica, un ulte- 
riore cuslom per il suono ed infine un micropro- 
cessore ad 8 bit per gestire la tastiera, l'orologio 
calendario e le altre funzioni interne del sistema. 
Dei due VLSI per la grafica, uno gestisce la 
codifica dei colori, l'altro l'alta risoluzione c lo 
spostamento di immagini: le loro caratteristiche 
sono completamente sfruttale dalla speciale vcr- 


12 


MCmicrocomputer n. 38 - febbraio 1985 



«ione del GW Basic, realizzala dalla Microsoft 
proprio per sfrullare i coprocessori grafici. La 
risoluzione punti-colore vede 320 x 200 punii 
con 1 6 colori. 640 x 200 con 4 colori c 640 x 400 
con 2 colori. 

Il Mindsel è IBM compatibile per applicazio- 
ni manageriali ed office a utomalion, per presen- 
tare prodotti o attività, relazioni, eie. Ampie le 
possibilità di sfruttamento in ambiente CAD: 
oltre che per soluzioni architetturali, il PC è 
adatto a studi meccanici, avionici, elettronici e 
chimici, sia come unità a sé che come terminale 
di un sistema maggiore. 

Il software disponibile prevede 4 pacchetti, 
sviluppati in proprio, ovvero adattali dal meglio 
offerto dal mercato: Caddraft. Lumcna. Desi- 
gner e 4Point Graphics Plus. 

Caddraft progetta in due dimensioni, c può 
essere usato sia con le opzioni da menu che con 
altre ridefinite dall'utente. Varie le opzioni: sca- 
la. griglia di riferimento, zoom. 7 strati sovrap- 
ponibili (utilissimo per vedere insieme un am- 
biente con impianti elettrici, idrici, etc). lesto su 
grafica: la risoluzione complessiva è di 65000 x 
65000 punti, di cui lo schermo mostra ovvia- 
mente solo una piccola parte. Sono già disponi- 
bili sottoprogrammi di pilotaggio di plotter ad 
ampia diffusione (HP. Huston. Calcomp). 

Lumena c di tipo artistico, c permette di crea- 
re bozzetti pubblicitari, paesaggi di immagini di 
vario tipo: si tratta dell'equivalente di una tavo- 
letta grafica, resa familiare all'utente dal mouse 
per la scelta da menu, e si possono selezionare 
sia il tipo di punto, che elementi geometrici di 
base, che ovviamente i colori. Tutte le immagini 
possono essere spostate, ruotate, duplicate c ri- 
disegnate; è presente lo zoom, eccellente la pos- 
sibilità di muovere immagini su uno sfondo fis- 
so. possibilità questa fondamentale per q ualsiasi 
tipo di animazione. L'uscita, oltre che su moni- 
tor, può essere inviata ad un'opportuna stam- 
pante a colori a getto di inchiostro (ricordiamo 
che questo tipo di periferica lavora anche su 
trasparenti). Designer è una variante di Lume- 
na. del quale conserva le caratteristiche di base: 
è però orientato a lavori più accurati, tipo la 
realizzazione di ornamenti o decori per piastrel- 
le o maioliche. 

4Point consente animazioni molto accurate: il 
pennello è esclusivamente di tipo I pixel (non c'è 
scelta del tratto, come negli altri programmi!. 
La caratteristica più interessante c la possibilità 
di memorizzare su disco i vari comandi, uno per 
volta, per poi eseguirli in rapida successione, 
con un'ottima resa deH'cffctto di animazione. 

Mier odala Svsiem, 

Via Malleoli!. 50. 19032 Lerici I SPI 


Cabel propone monitor italiani 

Una nuova serie di monitor a colori, corri- 
spondenti alle norme IEC e realizzati intera- 
mente con componenti europei, c stala realizza- 
ta dalla Cabel di Cumo (BG): si tratta della serie 
3700, che fa seguito alla fortunata serie 370. 
Nella versione base il 3700 è un 14 pollici com- 
patibile con PC IBM c con tutti i computer di 
tipo homc, personal e professional dotati di u- 
scita RGB. I comandi sono posti sul frontale, c 
la definizione non viene meno neppure ai bordi. 


Per accedere all'interno c sufficiente rimuovere 
due viti. 

Per la serie 3700 c stato proposto il conferi- 
mento del marchio IMQ. 

Per ulteriori informazioni 
Cabel Elei-Ironie 

Ha E Fermi 411 - 24035 Cumo i BG I 



Avviso per i lei lori de I Lazio: 
non perdete il prossimo numero! 


Come sta il tuo 64? 

In collaborazione con la Discom, u- 
no dei Centri Assistenza Tecnica Com- 
modore per il Lazio, MCmicrocompu- 
ter offre un check-up gratuito per il 
Commodore 64 a tutti coloro che si 
presenteranno presso la Discom por- 
tando con sé il tagliando che troveran- 
no nella rivista. Approfittatene! 


PC IBM anche alla Metro 

La catena europea di magazzini della Metro, 
da anni operante anche in Italia, ha aperto alla 
serie Personal Computer IBM le sue cinque filia- 
li italiane operanti a finiscilo Balsamo (MI). 
Cesano Boscone(MI). Torino. Roma Laurenti- 
na e Bolzaneto (GE). 

La proposta Metro comprende l'assistenza 
(hard e sofl). la consulenza c le documentazioni 
in italiano, oltre alle particolari soluzioni econo- 
miche garantite dalle condizioni Metro. Sono 
inoltre già pronte svariate combinazioni hard- 
soft per la segretaria, il manager, il professioni- 
sta. ia piccola azienda il rappresentante e per 
■'hobbista. 

Via XXV Aprile 23 P 
20097 San nomilo Milanese • MI 



MCmicrocompuler n, 38 - febbraio 1985 




Roma via Torrevecchia. 3/F 06/333823 
- Telex Jetsel 620418 
Milano via Nino Bixio, 34 - 02/2043329 


INFORMATICA 


^ h d 
j,' hardware 

software 



HARDWARE 

- OLIVETTI M24, IBM, 
APPLE, ADUN, 

DATA GENERAL 

- compatibili IBM 

- assistenza tecnica 


SOFTWARE 

- ampia disponibilità 
programmi pronti 

- Personalizzazione 
programmi 

MODEM 

con telefono integrato per 
tutti i computers su normali 
linee telefoniche come un 
normale telefono alla velo- 
cità di 300/1200 baud tra: 
computer - computer 
host - terminale 
computer - banca dati 
portatile - host 


MODEMPHONE 

un telefono per il vostro computer 



LA NOVITÀ L’OFFERTA 


del mese 



Condizioni interessanti 
per grossisti e rivenditori 


y r » 

Musica sul 64: libro + cassetta 

Un nuovo libro elettronico, ovvero corredato 
di programmi per il computer, è stato realizzato 
dalla Enda per conto delle Edizioni Beatrice 
d'Este. che fa parte della Arti Grafiche Ricordi. 
L'opera, che si intitola 'Musica elettronica con il 
Commodore 64'. è stata inserita nella collana 'Il 
computer insegna' distribuita al pubblico trami- 
te le edicole. 11 lavoro prende spunto dai corsi 
sulla musica elettronica che il musicista Franco 
Fabbri ha tenuto, e tiene tuttora, al Ccpam di 
Reggio Emilia: la scelta del Commodore 64 è 
praticamente obbligata, trattandosi dell'home 
computer con il miglior sintetizzatore musicale 
su chip singolo presente sul mercato (si pensi 
solo alle possibilità di filtraggio), il S1D 658 1 . La 
cassetta contiene una ventina di programmi so- 
stanzialmente in Basic, assolutamente non pro- 
tetti e quindi facilmente accessibili per modifi- 
che personalizzate. Sia il testo che i programmi 
sono sia un tutorial per il principiante che un 
perfezionamento per il conoscitore. 11 prezzo é 
stato contenuto in 10.000 lire. 

Franco Fabbri ha maturato una solida espe- 
rienza musicale: ha infatti fatto parte del gruppo 
rock degli Stormy Six dal 1966 al 1982. Negli 
ultimi anni ha collaborato a progetti musicali 
con esponenti dell'avanguardia americana, in- 
glese c tedesca. Di recente ha iniziato a lavorare 
usando il 64 come scqucncer e l'Apple II come 
Music System: da più di un anno tiene i citati 
corsi al Ccpam. 



Nixdorf: 

continua l’ascesa dell’M7 

A sette mesi dal lancio sul mercato italiano, il 
più piccolo dei microcomputer della Nixdorf. 
I'M7, ha largamente superalo le aspettative 
commerciali: a novembre '84 gli impegni di 
vendita erano oltre 500. 

Queste cifre hanno fatto della rete commer- 
ciale indiretta che c gestita dal doti. Sergio 
Frantoiini — il maggior successo europeo per le 
vendite di questo prodotto: ciò a conferma della 


scelta operala dalla casa madre, che ha usato 
l'Italia come paese pilota. Ira i quaranta in cui la 
Nixdorf distribuisce i propri computer, nella 
sperimentazione della vendila indiretta attra- 
verso rivenditori e concessionari. 

Dietro al successo si trova anche l'attenta e 
soprattutto stabile politica dei prezzi, e la conti- 
nuità nel fornire hardware di base e periferiche 
standard altamente professionali. 

Per ulteriori informazioni 
Nixdorf Computer . 

l'ia Piranexi 46, 20137 Milano. 


Trans Express e 

Music Typewriter per Spectrum 

Ecco due nuovi titoli per lo Spectrum 48K. 
che vanno ad aggiungersi alla marca di pro- 
grammi esistenti per il popolarissimo computer 
della Sinclair. 

Trans Express è un programma di back up. 
che si distingue dai tanti copiatori in commercio 
per l'ampia scelta di opzioni: oltre al classico 
trasferimento del programma da nastro a nastro 
c infatti possibile anche quello da nastro a mi- 
crodrive (e viceversa) e da microdrivc a micro- 

Music Typewriter. come dice lo stesso nome, 
permette di scrivere brani musicali, con la nota- 
zione standard, direttamente sullo schermo: i 
brani possono essere poi riascoltati ed editali 
con estrema facilità. Il programma esiste anche 
in una versione in grado di pilotare, al posto 
dcll'altoparlantino interno, un generatore sono- 
ro a più voci o addirittura un sintetizzatore mu- 
nito di interfaccia MIDI. 

Entrambi i programmi sono prodotti dalla 
Romantic Robot, una ditta inglese presentatasi 
da poco sul mercato. 

Sia Trans Express che Music Typewriter co- 
stano 9.95 sterline e sono forniti su nastro; il 
primo programma può essere richiesto anche su 
microcartuccia al costo di 14,95 sterline. È pos- 
sibile effettuare ordini dall'estero aggiungendo 
una sterlina per le spese di spedizione. 

Ronunuk Robin 

113 Melrose Arenile, fondini NU'2 t UH > MC 



MCmlcrocomputer n. 38 - febbraio 1985 



-Lcippkz è leader. 


BIT COMPUTERS - Roma, via Flavio Domiziano 10 - tei. 06.5126700 
Roma, via F. Satolli 55/57/S9 - tei. 06.6386096 
Roma, viale Jonio 333/335 - tei. 06.8170632 
Roma, via Nemorense 14/16 - tei. 06.858296 
Roma, via Tuscolana 350/350a - tei. 06.7943980 
COMPUTER CENTER - Genova, via San Vincenzo 109/R - tei. 010.581474 
DELTRON - Milano, viale Gran Sasso 50 - tei. 02.2360015 
IRET - Parma, via Cavallotti 3 - tei. 0521.207274 
Modena, c.so Canal Grande 29 - tei. 059.241043 
Sassuolo, via Pretorio 65 - tei. 0536.883843 
Carpi, via Berengario 58 - tei. 059.685252 ; 

Reggio Emilia, via Emilia S. Stefano 32 - tei. 0522.40415 
IRPE - Varese, via dei Caranlani 1 - tei. 0332.238533 
SERCOM - Bologna, via Berengario da Carpi 9b ■ tei. 051.441352 
SIEL INFORMATICA - Catania, piazza Galatea 2 - tei. 095.375222 
SISTEDA - Torrette (Ancona), via Velino 5 - tei. 071.880773 
SOLUZIONI EDP - Firenze, corso dei Tintori 39/R - tei 055.245220 

sono i leaders Apple. 
Tutti in Computernet. 



associazione nazionale rivenditori personal computers 


...dove il cliente diventa leader. 


COMPUTERNET - Sede sociale: 00144 Roma, via G. Gastaldi 33- tei. 06.5208447 




mori 

KVhlKK 


Il computer biologico 

Uno dei più grandi sogni dell'uomo è, dai tempi più remoti, quello di 
creare un essere a sua immagine. Con l’avvento dell'intelligenza artificiale 
si comincia a simulare il ragionamento umano, ma l'hardware per la 
realizzazione pratica di un cervello è ancora ben lungi dalle nostre possi- 
bilità tecnologiche. Alcuni fisici c chimici lavorano ad un'idea di proces- 
sore biologico che potrebbe riprodurre efficacemente le capacità cerebrali 
utilizzando dei materiali organici. L'articolo che segue, tratto da un 
dossier di Claire Remy. ri fornisce degli interessanti chiarimenti sull'argo- 
mento. 

Il ventesimo secolo ha portato alla scoperta dei semiconduttori ed allo 
sviluppo dei computer basati appunto su questo elemento. Il silicio, uno 
dei materiali più impiegati nella fabbricazione dei circuiti integrati, oggi 
comincia a cedere il passo ad altri materiali come l'arseniuro di gallio che 
presenta delle proprietà più interessanti, tuttavia non senza limiti. 

Da un po' di tempo i ricercatori si stanno dedicando allo studio di 
materiali che non sono legati alla chimica minerale: si tratta dei materiali 
organici e biologici. Da quando la biologia utilizza produttivamente i 
progressi dell'informatica — citiamo solo, tra lutti, il trattamento delle 
informazioni genetiche, il riconoscimento delle forme, l'ecotomografia. 
la risonanza magnetica nucleare, ecc. — a sua volta la biologia ha 
comincialo ad apportare dei contributi all'informatica fornendole nuovi 
materiali, modelli circuitali e processi quali la conduzione dei circuiti 
nervosi. Già da una ventina di anni alcuni fisici americani hanno suggeri- 
to che la struttura molecolare dei sistemi biologici potrebbe funzionare 
come un semiconduttore. Si ha infatti modo di distinguere tre tipi di 
materiali fondamentali a seconda della loro conduttività e precisamente: i 
conduttori (metalli), i semiconduttori e gli isolanti. La maggior pane dei 
materiali organici può essere classificata nella terza categoria e ciò signifi- 
ca che la loro conduttività c inferiore a IO (ohm x cm): ad esempio le 
plastiche sono particolarmente rinomate per le loro proprietà isolanti e lo 
stesso si può dire dei cristalli molecolari (ad esempio la naftalina) e dei 
polimeri. Dato che la proprietà di essere isolanti c data dalla mancanza di 
cariche mobili sotto l'azione di un campo elettrico, il drogaggio mediante 
un certo tipo di impurità rende conduttrici alcune molecole organiche. In 
questo modo, i metalli e i semiconduttori minerali non hanno più l'esclu- 
sività della conduzione elettrica ed anche le plastiche possono venire a 
concorrere in questo dominio privilegiato. 

Quando degli ioni positivi o negativi droganti penetrano nella struttura 
dei polimeri organici, questi possono vedere la loro conduttività aumen- 
tala di un fattore dell'ordine del miliardo. Già dal 1977 un'equipe di 
chimici americani c giapponesi ha mostrato che il poliacetilcnc poteva 
acquisire una conduttività inferiore di solo 500 volte a quella del rame e 
perdi più. secondo G.B. Street del centro IBM di San José (Stati Uniti), la 
conduttività di certi polimeri può essere regolata, modificando il drogag- 
gio c altri fattori (quali la temperatura o il campo magnetico), dallo stalo 
isolante a quello conduttore, passando attraverso lo stato semicondutto- 
re, spazzando circa dodici ordini di grandezza. 

Il drogaggio dei semiconduttori minerali quali il silicio, il germanio c 
l'arseniuro di gallio viene effettuato ad aita temperatura sostituendo a 
qualche atomo del cristallo delle impurità elettropositive o elettronegati- 
ve. Per rendere conduttore un polimero quale il poliacetilene bisogna 
fornirgli una concentrazione di drogante in una percentuale che va dal 3"„ 
al 5% e per ottenere tali valori, senza che le qualità fisico-chimiche e 
meccaniche della molecola si degradino, bisogna procedere contempora- 
neamente sia al drogaggio che alla sintesi del polimero. Delle prove, 
effettuale nei laboratori CNRS di fotochimica solare a Thiais, hanno 
permesso di conferire ai polimeri una conduttività di tipo metallico, 

Fin'ora le molecole organiche non offrono dei reali vantaggi rispetto ai 
conduttori e semiconduttori minerali in elettronica ma, se si considera la 


conduttività per unità di massa, la bilancia può pendere dalla parte dei 
polimeri conduttori. Nel 1911 fu messo in evidenza da Kamerlingh Onnes 
che alcuni conduttori portali a temperature prossime allo zero assoluto 
(-273.15” C) annullano la loro resistenza elettrica e divengono supercon- 
duttori. Questa proprietà si applica ad un gran numero di metalli, ma la 
temperatura critica per la soglia della superconduttività varia a seconda 
dei materiali. Essa è generalmente dell'ordine di qualche grado Kelvin (7 
per il piombo. 4 per il mercurio) e per raggiungere delle temperature cosi 
basse bisogna raffreddare i materiali con dell'elio liquido e allora l'ener- 
gia che bisogna spendere per raggiungere tali temperature è talmente 
elevata da limitare le applicazioni per usi industriali ed informatici in 
particolare. 

Un'equipe del laboratorio di fisica dello stato solido del CNRS in 
collaborazione con dei chimici danesi ha scoperto che alcuni materiali 
organici presentano delle caratteristiche di superconduttività ottenute 
sperimentalmente intorno alla temperatura di I grado Kelvin, temperatu- 
ra certo più bassa della soglia di superconduzione dei metalli, ma di 
contro, teoricamente, i materiali organici potrebbero avere una tempera- 
tura critica nettamente più elevata di quella dei metalli più favorevoli: tale 
fenomeno è intrinsecamente legato alia natura del fenomeno della super- 
conduttività. Ricordiamo clic — secondo la teoria di Bardeen. Cooper c 
Sehrieffer ( 1957) — in seno ad un conduttore portato ad un temperatura 
inferiore a quella critica si formano delle coppie di elettroni dette "coppie 
di Cooper" che si spostano in modo coerente sotto l'azione di un campo 
elettrico: la stabilità di queste coppie c assicurata solo alle basse tempera- 
ture perché, al di là da esse, le coppie verrebbero separate dall'agitazione 
termica. In base a questi fatti si c scoperto che la superconduttività nei 
materiali organici sarebbe di altra natura. Secondo W.A. Little dell'Uni- 
versità americana di Stanford, un superconduttore potrebbe essere fab- 
bricato a partire da una catena di molecole. Una schiera di atomi di 
carbonio agirebbe come una sorta di corridoio di conduzione per le 
coppie di Cooper: le molecole di idrocarburi che si trovano da entrambe le 
parti potrebbero essere polarizzate in modo da far acquistare ad alcune di 
esse una carica positiva ed ad altre una cariai negativa. Ora. un elettrone 
passante nel corridoio di atomi di carbonio respingerebbe gli elettroni 
esterni delle molecole degli idrocarburi creando una regione a carica 
positiva nelle vicinanze del corridoio. Un secondo elettrone che si trovas- 
se a passare nei corridoio verrebbe allora attratto dalla carica positiva e 
subirebbe un'attrazione indiretta verso il primo elettrone. Little dimostra 
che in un tale modello il fenomeno della superconduttività potrebbe 
esistere a temperatura ambiente ed anticipa valori di temperature critiche 
elevati oltre alla tendenza a formare delle coppie di Cooper accresciuta 
circa di un fattore 300. 

Benché non si abbiano ancora delle prove concrete di questo l'alto, 
l'interesse ai conduttori organici non c affatto diminuito. 1 ricercatori 
cercano di sintetizzare dei cristalli molecolari possedenti delle proprietà 
conduttrici particolarmente favorevoli considerando che la temperatura 
critica dipende dalla anisotropia dei materiali. Dato che i conduttori 
organici usuali sono quasi unidimensionali (la temperatura critica é nulla 
in caso di unidimcnsionalità assoluta) una struttura formata da molecole- 
piane a base di carbonio, zolfo o selenio può presentare delle proprietà 
interessanti. In particolare, in alcuni conduttori organici sintetizzati a 
Copenhaghen. la conduzione è più elevata lungo l'asse longitudinale che 
su quello trasversale e lo stesso materiale diviene superconduttore a 0.9 
Kelvin ed a una pressione di lOKbar. T uttavia l'equipe di Orsay ha messo 
in evidenza dei fenomeni di superconduzione a temperature di 40 Kelvin: 
é il fenomeno della paraconduzione. Questo fenomeno si produce nei 
metalli a temperatura prossima a quella critica mentre nei supercondutto- 
ri unidimensionali la paraconduzione é amplificata. Questo fenomeno si 
spiega per mezzo della presenza di coppie di elettroni che esisterebbero 
solamente per un tempo molto corto tuttavia sufficiente a partecipare alla 
conduzione. Si possono allora sperare delle temperature di supercondut- 
tività a 20, 30 Kelvin in futuri superconduttori organici. 

La superconduttività interessa soprattutto nei circuiti elettrici perché 
permette di evitare completamente il riscaldamento e quindi di realizzare 
circuiti più densi. I superconduttori organici leveranno il principale osta- 
colo all'industrializzazione dei circuiti ad effetto Joscphson che é rappre- 
sentato dal costo proibitivo del raffreddamento ottenuto per mezzo 
dell'elio liquido. 

Qualcosa bisogna dire anche sulla optoelettronica organica. Prcmettia- 


16 


MCmicrocomputer ri. 38 - febbraio 1985 


mo che un'altra importante proprietà dei cristalli molecolari organici è la 
non linearità. La storia dell'ottica non lineare è cominciala circa venticin- 
que anni fa quando un'equipe dell'Università del Michigan ha scoperto 
che illuminando un cristallo di quarzo con un laser a rubino si poteva 
rilevare in uscita dal cristallo, oltre al fascio trasmesso, una radiazione 
ultravioletta di cui la lunghezza d'onda era esattamente la metà di quella 
del laser: la frequenza di una piccola parte del raggio era stata duplicata 
durante l'attraversamento del quarzo a causa di una proprietà legata alla 
non linearità dell'elemento, la suscettività non lineare. Teorie quantisti- 
che mostrano che. per essere fortemente lineari, i materiali devono posse- 
dere delle caratteristiche fisico-chimiche c strutturali che si possono ritro- 
vare appunto in alcune molecole organiche. In pratica, i cristalli moleco- 
lari presentano delle forze interne molto intense, responsabili delle pro- 
prietà ottiche, ed altre che assicurano la coesione dclfcdiftcio cristallino: 
per ottenere delle buone proprietà di non linearità si potranno avere a 
disposizione moltissimi materiali ottenuti solamente variando la compo- 
sizione chimica. 

Le ricerche sono comunque soprattutto orientate verso l'integrazione 
su larghissima scala. Con i semiconduttori usuali, usando tecniche sofisti- 
catissime. siamo arrivati quasi al limite della possibile integrazione. Ora, 
questi limiti potrebbero essere superati di gran lunga dai materiali organi- 
ci che permettono, teoricamente, dei circuiti circa mille volte più densi di 
quelli realizzati fin’ora. Inoltre alcune molecole sono sensibili alle varia- 
zioni esterne: un cambiamento della pressione o del campo magnetico 
induce una variazione della conducibilità. Si può perfino passare dallo 
stalo isolante a quello metallico e tale passaggio è reversibile! Ciò porta 
alla possibilità di realizzare degli elementi bistabili (flip flop) che. in 
quanto tali, possono avere un posto di rilievo nei circuiti elettronici. Con 
gli stessi materiali è possibile realizzare anche porte logiche. Per il cablag- 


gio e le connessioni dei vari elementi sarebbero utilizzati dei polimeri 
unidimensionali come dei fili molecolari. Per la realizzazione pratica dei 
circuiti possono essere impiegate o le tecniche usuali oppure altre che 
consistono ncll'irradiare le molecole organiche con un fascio laser il quale 
produrrebbe delle modificazioni irreversibili della struttura interna dovu- 
te alla rottura di alcuni legami. In tal modo è abbastanza semplice creare 
delle zone Isolanti ed altre conduttrici. 

In queste condizioni, l'unità centrale e la memoria centrale di un 
computer del futuro potrebbero avere il volume di un centimetro cubo, 
montati su un circuito di refrigerazione ad elio liquido c provvisti di 
interfacce ottiche che metterebbero a profitto quanto già visto. 

Ma non è finita qui! Un nuovo approccio consiste nell'impiegare 
l'ingegneria genetica e la biotecnologia per fabbricare dei computer che 
sfrutterebbero la tendenza naturale dei sistemi biologici ad autoorganiz- 
zarsi: il DNA comanda i processi per i quali le cellule si riproducono fino 
alla determinazione della composizione del tessuto vivente. Sfruttando 
tale proprietà si potrebbero produrre componenti per computer di una 
potenza inimmaginabile, in un tempo molto più breve del consueto e con 
minor rischio di difetti di fabbricazione. Potrebbero cosi essere messe a 
profitto le proprietà delle macromolecole biologiche di assemblarsi in 
ultramicrocircuiti molecolari tridimensionali, utilizzanti l'informazione 
interna dei biopolimeri. Queste "pulci biologiche" cosi ottenute avrebbe- 
ro una densità di componenti di circa dicci miliardi per millimetro cubo! 

“È probabile — dice un ricercatore di Rockville (Maryland, Stati 
Uniti) — che presto potremo fare su misura le proteine, che saranno alla 
base dei composti organici, con le proprietà elettroniche richieste". 

Da li a connettere direttamente le "biopulci" al cervello umano c 
realizzare un'interfaccia uomo macchina il passo è breve... 

TP. 



MCmicrocompuler n. 38 - febbraio 1985 


17 




Ama il meglio! 



32K ROM 80K RAM 
Tastiera professionale a 90 tasti 
Porte per monitor, TV, joisticks, 
floppy disk, 

cassette recorder, stampante, giochi. 
Interfaccia stampante parallela 
Centronics incorporata 

SVI 

SPECTRAVIDEO 

il computer del grande standard MSX 



Distributore per l'Italia 

COMTRAD 
Divisione Computerà 

Tel. (0586) 424348 TLX 623481 COMTRD I 


Dizionario del BASIC 

di David A. Lien 
Edizioni E.P.S.I. 19X4 
Distribuzione: ET MI 
Via Basilicata 

201198 S. Giuliano Milanese (MI) 

436 pagine, 40.000 lire 

Fra i lami libri che riguardano il Basic questo 
è certamente uno dei più strani: il suo titolo non 
é metaforico, si tratta veramente di un diziona- 
rio del linguaggio Basic. Prima o poi doveva 
succedere: se il Basic è un "linguaggio" allora 
perché non raccogliere tutte le sue "parole" in 
un "vocabolario"? E questo c precisamente ciò 
che ha fatto l'autore: ha preso tutti i comandi e le 
istruzioni dei più dilTusi Basic in circolazione 
(dichiarate circa cinquecento parole di duecento 
macchine), le ha messe in ordine alfabetico, le ha 



dotate ognuna di un commento, una spiegazio- 
ne e di uno o più brevi esempi di uso. ed ecco 
fatto il dizionario. 

Ad ogni parola viene dedicata almeno una 
pagina, nella quale sono riportate, oltre al signi- 
ficato ed al commento, diverse informazioni uti- 
li: un breve programma di prova (serve per con- 
trollare che il proprio calcolatore riconosca ed 
esegua correttamente l'istruzione in questione), 
eventuali modi alternativi di ottenere la stessa 
funzione nel caso in cui il Basic in uso non 
preveda l'istruzione stessa, eventuali "sinonimi" 
(parole diverse ma dallo stesso significato, ap- 
partenenti ad altri "dialetti" Basic), c perfino 
eventuali significati differenti della stessa parola 
in altri dialetti. Viene inoltre segnalata esplicita- 
mente l'eventuale conformità dell'istruzione al- 
lo standard ANSI. 

Precede l'opera una breve introduzione che 
spiega scopi c portata del libro e fornisce alcuni 
consigli su come effettuare la traduzione di un 
programma da un Basic ad un altro. Già. perchè 
questo libro (c'é bisogno di dirlo?) si rivolge 
essenzialmente a chi per qualsiasi necessità si 
trovi a dover tradurre e/o adattare programmi 
scritti in dialetti Basic differenti da quello dispo- 
nibile c quindi a programmatori/installatori di 
professione, più che ai programmatori occasio- 
nali. In effetti il dizionario costituisce, in un 
certo senso, una guida di riferimento di lutti i 
principali Basic in circolazione, c quindi permet- 

MCmicrocompuler n. 38 - febbraio 1985 


le di sciogliere eventuali dubbi sul significato di 
quelle istruzioni strane dal significato oscuro 
che... non mancano mai in qualunque program- 
ma scritto per una macchina diversa dalla no- 

Chiudono l'opera quattro brevi "sezioni spe- 
ciali" che si occupano più da vicino dei Basic 
disponibili su Acorn Alom. Atari 400 e 800. 
TRS-80 Color e sulle Workstation grafiche Tek- 
tronix serie 4050. Seguono infine una succintis- 
sima panoramica delle istruzioni di I/O su di- 
schetto (non presenti nel dizionario vero e pro- 
prio in quanto assolutamente non standardizza- 
te e quindi non catalogabili) ed una tabella col 
codice ASCII. 

La cura posta nella redazione italiana del te- 
sto ci sembra buona, anche se qua c là compaio- 
no periodi un po' distorti, segno di una traduzio- 
ne troppo letterale dall'originale inglese. Mollo 
apprezzabile invece il fatto che tutti i program- 
mai di esempio abbiano i messaggi tradotti in 
italiano. La mancanza degli indici, generale ed 
analitico, è meno grave di quanto si potrebbe 
pensare, data la particolare natura del testo. Più 
limitante ci sembra invece l'assenza di parole 
appartenenti ai dialetti Commodore c Sinclair, 
data la grande diffusione di queste macchine; ciò 
c dovuto alla relativa anzianità del testo, uscito 
negli USA nel 1981 (come seconda edizione am- 
pliata: la prima edizione risale al 1978). 

Comunque non possiamo che parlare bene di 
questo libro; crediamo che meriti un posto nella 
biblioteca di chiunque si occupi di programma- 
zione in Basic in modo più che superficiale, spe- 
cie se con frequenti necessità di conversioni da 
altre macchine. Il prezzo c alto in assoluto, ma 
giustificato alla luce della qualità; c comunque 
accettabile per un libro di chiara natura "di 
lavoro" più che hobbystica. 

Corrado Giustozzi 


The Power Of: Cale Result 

di Robert E. Williams 
P rem ice- Hai I International 
Distributore italiano: 

Flavio Marcello, 

Via Vicenza 27b, 35100 Padova 
192 pg 23x15 citi 
Prima Edizione: 1983 

Un package complesso come il Cale Result, 
che gestisce su disco 32 grandi pagine (da 254x63 
clementi), non è certo il modo più semplice per 
entrare nel mondo dell'Informatica domestica e 
personale. Ciò nonostante moltissime persone 
trarrebbero enorme beneficio dalla registrazio- 
ne elettronica ed automatica delle loro contabi- 
lità. consentendo una facile archiviazione, una 
facile ricerca ed un'immediata pianificazione dei 
prossimi impegni. 

Serve dunque un programma come il Cale 
Result: ma nè il manuale, né gli schermi di help 
possono bastare, se non ci si mette un po' d'espe- 
rienza: questa é offerta dal volume "The Power 
Of: Cale Result". che attraverso una serie di 
esempi — redatti passo passo in maniera chiaris- 
sima, e ricchi di esempi c suggerimenti mostra 

nella pratica come gestire costi, magazzini, fi- 
nanziamenti. piani d'ammortamento, inventari, 
libri cassa, eie., con dieci esercizi che compren- 
dono l'uscita grafica, la stampa, il salvataggio 
(normale e secondo lo standard dei DIF file) e 



persino la procedura per richiamare i file appena 
registrati su disco. 

La nota che appare nella pagina dell'intesta- 
zione contiene una lieve inesattezza. Come spie- 
gato nella prova, pubblicata in questo stesso 
numero, del Cale Result esistono due versioni, 
una più semplice (che usa anche la cassetta) e 
una più articolata (che va solo su disco): i dieci 
esercizi si riferiscono alla sola versione avanza- 
ta. c non ad entrambe. I cambiamenti da effet- 
tuare sono comunque minimi. 

La Prenticc-Hall è originaria del New Jersey, 
negli USA. e quindi anche le tabelle e le varie 
procedure si riferiscono al sistema tributario a- 
mericano: anche in questo caso, comunque, il 
maggior carico dell'utente non comporta ulte- 
riori difficoltà, anche se allunga leggermente il 
tempo di apprendimento. 

In chiusura, una nota: questo libro fa parte 
della serie "The Power OF. che si rivolge a Pack- 
age notissimi come Visicalc (3 volumi), Visi- 
plot. Supercalc, Multiplan(2 voli). Lotus 1-2-3 
(2 voli) c Logo Turile, spesso disponibili anche 
direttamente su dischetto. 

Leo Sorge 


Vademecum per Applesoft 

di Claudy Galais 
Edizioni E.P.S.I 
Distribuzione: ET MI 
Via Basilicata 

20098 S. Giuliano Milanese (MI) 

Milano - 1984 
Formato tascabile: 

11.5 x 16 J x l.l cm 
170 pagine, 12.000 lire 

Chi può dire con sicurezza di conoscere tutti i 
comandi del proprio computer, con la relativa 
sintassi, c chi, pur essendo sicuro della sintassi, 
non si é trovato, almeno una volta, a combattere 
con un comando che non faceva quello che a- 
vrebbe dovuto fare? 

La ricerca sul manuale originale spesso si rive- 
la disagevole in quanto i comandi sono raggrup- 
pati per funzione e a volte (c il caso del manuale 
Applesoft originale) lo stesso comando appare 
in più parti del manuale e ogni volta che compa- 
re viene aggiunta qualche caratteristica o qual- 


19 




che avvertimento. Utilissimo in questi casi il 
Vademecum; un manuale "alternativo" con tut- 
ti i comandi del Basic e quelli del Dos. in ordine 
alfabetico e uno per pagina. La ricerca di un 
qualsiasi comando e praticamente immediata e 
il suo utilizzo è semplificato da un programmino 
di prova in cui viene applicato il comando stcs- 

Un piccolo difetto del manuale è la mancanza 
della sintassi del comando che deve perciò essere 
ricavata dall'esempio. L'aggiunta di qualche ta- 
bella. tipo quella delle locazioni speciali (alto- 
parlante. tastiera, pulsanti ecc.) e quella del co- 
dice numerico degli errori (utili per l'uso della 
istruzione ON ERR) avrebbe reso praticamente 
perfetto questo manuale (volendo si possono 
scrivere nelle ultime tre pagine che sono bian- 
che). 

Il praticissimo formato tascabile, che non ru- 
ba spazio ai sempre affollati posti di lavoro, la 
cura posta nel testo e nella stesura dei program- 
mi ed un prezzo decisamente abbordabile, ne 
fanno un acquisto indispensabile per chi usa 
l'Apple per programmare o per chi voglia ap- 
prendere meglio il funzionamento del Basic sen- 
za dover imparare a memoria il manuale origi- 
nale. 

Valter Di Dia 


Imparate il linguaggio 
dell'Apple 

Don c Kurt Inman 
Franco Muzzio «fi C. Editori 
Via Mukallé 73 - 35138 Padova 
Padova - 1982 
340 pagine. 15.000 lire 

Contrariamente a quanto si possa immagina- 
re dal titolo, questo non c un libro di Basic. Per 
linguaggio dell'Apple si intende infatti il lin- 
guaggio del suo microprocessore, il 6502, ma in 
ambiente Apple. Un libro quindi sul linguaggio 
macchina e sul Monitor (il mini sistema operati- 
vo dell'Apple). 

Dopo un brevissimo capitolo sul Basic Apple- 
soft. poco più di un elenco dei principali coman- 


di, un capitolo dal significativo titolo ‘passiamo 
il ponte' introduce al linguaggio macchina. Il 
ponte immaginario è quello che divide il Basic, e 
quindi la logica decimale c l'aritmetica a noi più 
familiare, dalla logica bolcana e l'aritmetica bi- 
naria indispensabile per parlare direttamente al 
microprocessore dell'Apple. 

La semplicità di esposizione, il gran numero 
di illustrazioni e gli esempi via via più complessi, 
rendono l'apprendimento di questa materia, ini- 
zialmente sempre un po' dura, estremamente 
affascinante, e il lettore viene portato a pro- 
grammare dei giochini in linguaggio macchina 
senza essersi quasi accorto di aver fatto una gran 
quantità di lavoro e aver appreso un gran nume- 
ro di nozioni su questo nuovo ambiente di tavo- 
li linguaggio macchina apre ovviamente una 
nuova dimensione alle possibilità della macchi- 
na che. da poco più di un giocattolo, si trasfor- 
ma improvvisamente in un mostro dalle poten- 
zialità impressionanti. Basti pensare che se un 
ciclo FOR...NEXT fino a 1000 impiega in Basic 



I secondo, lo stesso ciclo in linguaggio macchina 
dura poco più di 4 millesimi di secondo. 

Una appendice con tutte le tabelle necessarie 
al linguaggio macchina, compresa quella delle 
principali subroutine del Monitor, completa 
quest'opera molto utile per chi. insoddisfatto 
del Basic, voglia estendere le proprie capacità di 
programmatore. La veste editoriale è mollo cu- 
rala e il prezzo decisamente inferiore al valore 
del testo. 

Valter Di Dio 


C 64: Machine Language 
for thè Absolute Beginner 

di Danny Davis 

Edizioni Melborne House. Church Yard 
Tring. Hertfordshire. HP23 5LU. GB 
201) pagine - 14x21 cm circa 
Data di pubblicazione: 1984 
6.95 sterline 

Si parla sempre più di microprocessori, e il 
linguaggio macchina è il modo migliore per 



sfruttare appieno le potenzialità loro e dell'hard- 
ware che sta loro intorno in un home computer. 
La Melbourne House, che i nostri lettori cono- 
scono benissimo sia per i giochi che per i libri, 
porta in tutto il mondo i prodotti di varie case, 
tra cui la Bcam Software, la quale ha preparalo 
questo prontuario sull'uso dei 6510 nel contesto 
del C 64. Le 200 pagine sono suddivise in due 
parti eguali: la prima espone gli argomenti, la 
seconda funge da guida di riferimento. In que- 
sl'ultima troviamo non solo una completa tabu- 
lazione di tutte le istruzioni del 6510 con la 
spiegazione sull'uso e i relativi effetti sui flag. ma 
anche una mappa di memoria per indirizzi (le 
routine sia del Basic che del sistema operativo) e 
le mappe dei registri degli altri 4 circuiti integrati 
VLSI del computer, il SID 6581 per il suono, i 
CIA 6526 per comunicare con le periferiche (ta- 
stiera. porta utente, disco...) c il VIC 6567 per lo 
schermo. 

Venendo al testo in sé. é organizzato in 12 
capitoli che trattano il pieno uso del micropro- 
cessore. ma con due differenze rispetto ad una 
guida di riferimento: si parte da zero — o, al più. 
dalle conclusioni dell'ultimo capitolo - e gli 
esempi riguardano le particolarità del C 64 
(muovere le sprite. portare in RAM il set di 
caratteri, etc.). 

Va citato a parte il capitolo 1 2. che brevemen- 
te mostra all'utente come sfruttare il sistema 
operativo per propri scopi. 

Le nozioni introduttive, come l'aritmetica bi- 
naria. vengono introdotte talvolta nel corso del 
lesiti, talvolta in appositi capitoli. Quando si usa 
il LM è praticamente indispensabile un pro- 
gramma che faciliti la creazione c il controllo del 
lavoro, e ci permetta di immagazzinare su cas- 
setta dati c programmi, per poi richiamarli. 

Questo libro, in una delle appendici, pubblica 
il listalo di ALPA - Asscmbly Language Pro- 
gramming Aid. ovvero aiuto alla programma- 
zione in LM - che dovrebbe risolvere i vostri 
problemi: il listato é "trattato"' per minimizzare 
gli errori di interpretazione (ma ciò potrebbe 
portare ad errori di stampa), e termina con una 
sezione che, con l'aiuto del libro stesso, vi aiuta a 
trovare gli errori di digitazione. 

Purtroppo il testo non cita la possibilità di 
acquistare separatamente una cassetta con AL- 
PA. cosa che ne faciliterebbe di molto l'uso (ma 
non il portafogli!). 

Il tutto é scritto in ottimo inglese.che associa 


20 


MCmicrocomputer n. 38 - febbraio 1985 





la precisione della lingua Iconica senza assorbir- 
ne la monotonia. Il prezzo, rissato in sole 6,95 
sterline, ovvero meno di 17000 lire, è davvero 
basso per la qualità mostrata e l'utilità che ne 
consegue al novello programmatore in LM. 

Leo Sorge 


CP/M passo dopo passo 

di Alain Pinaud 
Edizioni E.P.S.I. Milano 
Distribuzione: ETMI 
Eia Basilicata 

21)098 S. Giuliano Milanese ( MI ) 

Pagine: 128 - Formato 17x24 
Lire 13.000 

Ecco una guida pratica dedicata al sistema 
operativo CP/M. presente ormai in tutti quei 
personal computer dolati del microprocessore 
Z80: c un libro molto scorrevole e simpatico per 
il modo con cui vengono trattatti argomenti 
anche complicati. Già daU'introduzione. i "neo- 
fiti" dell'argomento trarranno un sospiro di sol- 
lievo. in quanto c subito specificato che le varie 
tematiche verranno affrontate gradualmente a 
partire dai cenni storici sul CP/M fino alla strut- 
tura dei file su disco. 

Il metodo prescelto dall'autore per spiegare i 
vari argomenti consiste nel presentare, per ogni 



capitolo, un numero notevole di output forniti 
direttamente da un computer, sui quali effettua 
le debite considerazioni, indicando volta per 
volta le possibili varianti, stimolando diretta- 
mente il lettore con frasi del genere: "provate 
ora a digitare... e vedrete cosa succede". 

Abbiamo parlato dei cenni storici: nel primo 
capitolo sono inoltre presenti altre note intro- 
duttive quali le caratteristiche del personal com- 
puter generico e della "posizione che occupa" il 
CP/M. non solo fisicamente in memoria, ma 
come supervisore di tutte le operazioni che vo- 
gliamo compiere. 

Nel secondo capitolo viene gettato uno sguar- 
do abbastanza approfondito sui tipi di file previ- 


sti dal CP/M e sui caratteri di controllo imposta- 
bili da console. 

Il terzo capitolo, che rappresenta praticamen- 
te i due terzi del libro, tratta in dettaglio ognuno 
di quei programmi di sistema, ben noti ai lettori, 
ma che qua c là presentano sempre delle caratte- 
ristiche dimenticate o sconosciute. Ecco che tro- 
viamo. DIR. USER. STAT. REN. TYPE. PIP. 
ERA. DUMP. SUBMIT. fino ad arrivare 
all' ASM. al DDT. al MOVCPM ed al SY- 
SGEN. 

Per chiarire ancora meglio alcuni concetti re- 
lativi all'ASM ed al DDT. viene proposto un 
programma in linguaggio macchina che il letto- 
re può seguire dal momento in cui lo edita (pur- 
troppo con l’ED. che ormai quasi nessuno usa. 
dato che in questo campo regna il Wordstar), 
fino alla sua esecuzione, passando attraverso 
l'assembler ASM e verificandone la correttezza 
(correggendo eventuali errori) tramite il DDT. 

Nel quarto capitolo, invece, si trovano alcune 
ulteriori informazioni (che in un primo tempo 
non erano strettamente necessarie) sui tre pro- 
grammi ED (ancora lui!). PIP e DDT. 

Strano che l'autore non parli né del Wordstar 
ne dello ZSID. un miglioramento del DDT. spe- 
cializzalo per lo Z80. dal momento che quasi 
tutti i personal dolati di CP/M vengono ormai 
dotati di tali programmi. 

Terminato questo capitolo, che come detto c 
alquanto più difficile degli altri, ecco dunque le 
appendici con una ricca dotazione di tahelle. di 
rapida ed utilissima consultazione: si va dall'as- 
segnazione della memoria di un sistema dotato 
di CP/M. al significalo delflOBYTE alle rouli- 


Imparate il Basic 
con VIBM 

Personal Computer 


David A. Lieti 

di testi tecnici: 
ilei suoi titoli sono state 
fendute milioni di copie 
In questa guida attinge alle 
sue risorse di linguaggio e di 
esperienza per insegnare il 
Basic del PC IBM, uno dei 
persona ! computer più 
affermati nell'ambito degli 
uffici, delle attiviti! 
professionali, delle aziende. 



muzzio 

editore 


Se siete interessati a questo 
o altri ns. libri, compilate la 
cartolina e inviate a Franco 
Muzzio Editore - Servizio 
Mailing - via Makallè 73 - 
35138 Padova. 

□ desidero acquistare "Im- 
parate il Basic con l'IBM 
Personal Computer. 
Pagherò al postino L. 26.000 
+ L. 1 .000 di spese di spe- 
dizione. 

□ desidero ricevere il Vo- 
stro catalogo generale. 


nome 

cognome 


C.A.P 


ne del BDOS. alla struttura del File Control 
Block (FCB). per poi giungere all'assemblatore 
ASM con le tabelle delle istruzioni dell'8080 e 
all'immancabile tabella dei codici ASCII. 

Concludiamo questa recensione con la consi- 
derazione che il lettore alla fine del libro difficil- 
mente non sarà invogliato a saperne di più, po- 
tendo però affrontare la lettura ben più difficile 
di altri testi sul CP/M. dal momento che già ne 
conosce i fondamenti ed i primi segreti. 

Pierluigi Piwun: i 


32 programmi per il Vie 20 

di T.Rugg, P. Feldman. C. S. Wilson 
Franco Muzzio & C. Editori 
Via Makallè. 73 - 35138 Padova 
Lire 18.000 

Questo libro c rivolto a chi. dopo aver acqui- 
stato un computer ed appreso i primi rudimenti 
d'uso, voglia cominciare a toccar con mano la 
versatilità e l'utilità della macchina unitamente 
alla soddisfazione di veder girare i primi pro- 
grammi battuti da se. senza la necessità di una 
approfondita conoscenza del Basic. È rivolto 
anche a chi. avendo bisogno di risolvere un par- 
ticolare problema, non voglia prendersi la briga 
di scrivere da solo il programma. 

I programmi presentati trattano giochi, appli- 
cazioni domestiche, grafica, matematica, stati- 
stica ed usi vari e mentre tutti girano su un Vie 
con 8K di espansione, per alcuni è sufficiente 
una minor quantità di memoria. È senz'altro 



inutile menzionare tutti i programmi riportali 
nel libro ma è forse il caso di accennare, per 
rendere l'idea, a quelli educativi come "Aritme- 
tica" che sviluppa dei quesiti di aritmetica ad 
uso dei bambini delle elementari, "Numeri" che 
insegna a contare ai bambini in età prescolare. 
"Flashcard" che aiuta ad allenare la memoria, e 
ad altri, situati nella sezione matematica del li- 
bro, tra cui ricordiamo "EqdifT' per la risoluzio- 
ne di equazioni differenziali lineari di prim'ordi- 
ne col metodo di Runge-Kutta. “Sislin" per la 
risoluzione di sistemi di equazioni lineari e “In- 
tegrale" per il calcolo di integrali semplici con la 
regola di Simpson. 


Ad ogni programma è dedicalo un capitolo, 
diviso in più sezioni c ben documentato, in cui 
troviamo una prima parte che spiega lo scopo 
del programma c come utilizzarlo insieme ad 
alcune schermate dimostrative. In un'apposita 
sezione del capitolo vengono suggerite delle pos- 
sibili migliorie e delle idee di progetto mentre in 
altre è riportala la descrizione delle routine usa- 
te c delle variabili principali. 

Il libro è mollo chiaro e lineare oltre che nel- 
l'esposizione anche nei listati (in cui si utilizzano 
metodi alternativi di scrittura per i caratteri gra- 
fici Commodore) ed oltre molli spunti ai neofiti 
che vogliano cominciare a divertirsi con il com- 

Tommaso Paniuso 


102 programmi per il 
Commodore 64 

di Jacques Deconchat 
Edizioni E.P.S.I. 

Distribuzione: ET MI 

20098 S. Giuliano Milanese (MI) 
Edizione francese : 1983 
Edizione italiana: 1984 
230 pgg. da 24x17 etti 
Lire 20.000 

Il mercato internazionale è inflazionato da 
libri che propongono una serie di listati più o 



** A Napoli, BYTE COMPUTERS 
è la ragione in più per scegliere 

f^cippkz computer 

Apple Ile * Apple Ile * Macintosh 

Completa assistenza hardware e software, corsi e libri • 
Offerte promozionali di lancio, credito personale, leasing 

BYTE COMPUTERS • Napoli. via G.B. Marino 29 • tel.081.636328 

ULTIMI PROGRAMMI REALIZZATI: 






primo volume ecco gli ultimi due libri che com- 
pletano l'opera. 

Il secondo volume. Le estensioni si occupano 
soprattutto dei sistemi operativi; si comincia ov- 
viamente dal DOS 3.3 che viene esplorato nei 
minimi particolari, con ampi programmi di e- 
sempio e addirittura un data-base completo. 
Dopo il DOS il secondo sistema operativo più 
usato sull'Apple, il Pascal U.C.S.D. (University 
of California. San Diego). Anche qui studialo 
nei dettagli e con vari esempi sull'uso dei file che 
sono la parte più ostica del sistema operativo, 
soprattutto per chi non è un programmatore 
esperto e si trova a disagio con termini quali 
Linker o formattcr o altra "roba del genere". 

Dopo il Pascal il CP/M naturalmente con 
scheda Z80 con un programma di esempio in 
MBAS1C per la gestione di una rubrica di indi- 
rizzi e un elenco dei linguaggi disponibili sotto 
CP/M. 

In chiusura un elenco con le principali espan- 



meno funzionanti, per il 95% troppo semplici, 
privi delle più elementari note di realizzazione e 
per di più stampati male o malissimo. Non è 
certamente il caso di questo libro della EPSI. il 
cui titolo non fa piena luce sui contenuti. Anche 
se è evidente che i 102 programmi che occupano 
le 230 pagine sono per lo più brevi, il lettore non 
è abbandonato a se stesso: il testo è diviso in 5 
parti, a difficoltà crescente, ed inoltre ogni pro- 
gramma viene commentato nelle sue linee sa- 
lienti; di ogni sezione è offerto un quadro rias- 
suntivo. ed infine per ogni programma vengono 
indicate delle possibili varianti o migliorie. 

Lo scopo del libro è di insegnare a farsi i 
giochi (in Basic) da soli: cosi nel livello I vedia- 
mo in pratica le istruzioni PRINT e INPUT, 
IMF... THEN. il FOR... NEXT. i salti (GOTO. 
GOSUB) e le verifiche multiple (ON...): nel li- 
vello 2 vediamo READ e DATA; nel 3 le funzio- 
ni di stringa: nel 4 la GET; nel 5 la PEEK e la 
POKE. 

La struttura del libro ricalca quella di analo- 
ghe opere da tempo apparse per i Pel Commo- 
dore e successivamente adattate al VIC e al 64, 
per cui non troviamo nessun accenno né al suo- 
no né alla grafica in alta risoluzione, nè agli 
sprite. cosa questa bene indicata dagli autori 
nella prefazione. L'impostazione del lavoro, che 
vede solo il Basic standard e un minimo uso delle 
POKE, definisce compiutamente il tipo di infor- 
mazioni che si possono desumere dalle sue pagi- 
ne: chi debba partire dal manuale troverà utili i 
1 92 giochi e le note relative, ma per la program- 
mazione avanzata bisognerà rivolgersi altrove. 

Leo Sorge 


Guida per l'Apple 

2. le estensioni 

3. le applicazioni 

di Benoil de Merly 
Edizioni E.P.S.I. 

Distribuzione : ETMI 
l'io Basilicata 

20098 S. Giuliano Milanese ( MI I 
Edizione 1984 

Voi. 2: 174 pagine. 18.000 lire 
Voi. 3: 168 pagine. 19.000 lire 

Ad appena un mese dalla presentazione del 



sioni disponibili per l'Apple, le caratteristiche c 
gli impieghi principali. 

Il terzo volume di quest'opera si occupa delle 
applicazioni, ccon questo termine si vuol inten- 
dere il software già pronto esistente per questa 
macchina. 

Vengono presentati ed esplorati nelle loro 
principali caratteristiche e potenzialità i più noti 
programmi per ufficio disponibili per l'Apple. Si 
comincia dai programmi di Word processi Ap- 
ple Writer (il nuovo). Wordstar (sotto CP/M ) ed 
altri. Poi si passa ai fogli elettronici: il Visicalc e 
il Multiplan. Quindi alla gestione dei file con 
l'intramontabile PFS. il Quik File, il CX Mulli- 
gestion ed altri non da meno come il Visilile; per 
terminare un capitolo sull'uso dell'Apple come 
terminale di una rete telematica c uno sull'uso 
del programma grafico PFS Graph. 

Questo volume più che un manuale d'uso si 
può considerare una guida all'acquisto del soft- 
ware necessario al proprio lavoro; infatti tutti i 
programmi sono presentati in modo da poter 
essere facilmente e rapidamente confrontati tra 
loro in funzione della facilità di apprendimento 
e potenza operativa. Un libro quindi indispensa- 
bile per aggirarsi tra la selva di programmi esi- 
stenti senza cadere nelle mani dei venditori che 
non sempre indirizzano il cliente verso l'acqui- 
sto migliore. 

Valter Di Dio 



MCmicrocomputer n. 38 - febbraio 1985 


23 





LE NOVITÀ DEL MESE 




Programmare in Forth 

Autore: Alain Pinaud 
Pagine: 160 - Formato: 15x21 
Brossura cucita - ISBN 88.7688.210.3 

Ut. 14.000 

Programmare in Forth è un po' come la- 
sciare i linguaggi informatici "terrestri” a 
noi familiari e partire per un'altra galassia 
Per comprendere questo linguaggio biso- 
gna mettersi alla sua porlata, cercando di 
fare astrazione il più possibile dalle nozio- 
ni apprese con gli altri linguaggi e di aprirsi 
a concetti nuovi, spesso di sconcertante 
semplicità. Lo scopo di questo libro è non 
solo quello di insegnarvi la filosofia di que 
sto linguaggio affascinante ma anche di in- 
vitarvi a praticarlo. Per questo mettetevi 
davanti al vostro computer con installata 
una versione del Forth e studiate secondo 
il vostro ritmo i diversi capitoli, non trascu- 
rando gli esercizi proposti. Sebbene questa 
sia prima di tutto un'opera di iniziazione, 
è preferibile che il lettore possieda delle no- 
zioni generali di programmazione e qual 
che rudimento sul linguaggio macchina se 
vuol trarre il massimo profitto da certi 
sviluppi. 




Questo libro "La pratica dell'Apple II" si ri 
volge a tutti gli appassionati dell'Apple. È 
stato scritto soprattutto alla luce delle po- 
tenzialità dell'Apple Ile. 

Vi si affronta lo studio dell'unità a dischi 
sia dal punto di vista hardware sia da quel- 
lo software. Diversi capitoli sono dedicati 
al sistema operativo DOS e alla gestione dei 
file. Vengono studiati i diversi modelli di 
stampati e le diverse modalità di stampa 
L'ultimo capitolo è dedicato alla scheda 
Apple-Clock. 


GIOCHI SUL PHILIPS 
VIDEOPAC + 



Ut. 20.000 

Questo testo presenta un insieme di tecni- 
che che illustrano le possibilità delle rea- 
lizzazioni grafiche del calcolatore. 

Il suo procedimento progressivo permette 
al dilettante come al professionista di af- 
frontare la risoluzione di problemi sempre 
più complessi, (tracciati d'ellisse, rotazio- 
ne dei poligoni, tratteggio delle superfici). 
I modelli di espressione grafica presenti so- 
no scritti in Basic Applesoft. I programmi, 
ampiamente commentati, sono facilmen- 
te adattabili agli altri calcolatori. 


Giochi sul Philips C 7420 


Autore: Christophe Bardon, Benoit De 

Pagine: 180 - Formato: 15x21 
Brossura cucita - ISBN 88.7688.213.8 

Ul. 18.000 

La consolle di gioco Videopact conosce un 
successo notevole. Philips mette ora a di- 
sposizione dei possessori di Videopace 
l'estensione Basic C7420 che darà loro ac- 
cesso al mondo appassionante della pro- 
grammazione 
Ecco un libro c 

principianti. cL 

grammi di giochi di lunghez; 

Tra questi ricordiamo: il gioco del 21. la 
roulette russa, totip, mastermind nel capi 
tolo di introduzione al Basic: Blitz e bom 
bardiere. giochi di grafica e suono, caccia 
al tesoro, tic.tac.toe, radar nei giochi di 
riflessione; infine nei giochi di azione: mtl 
lepiedi. inseguimento, gli invasori, batta 
glia di elicotteri. 


La pratica del Commodore 64 

3 Linguaggio macchina e assembler del 
6502 

Autore. Daniel-jean David 
Pagine: 204 - Formato: 15x21 
Brossura cucita ISBN 88.7688.212.X 
Ul. 20.000 

Questo libro si rivolge a due fasce di per- 
sone. Una prima fascia è formata da que- 
gli utenti del Commodore 64 che vogliono 
saperne di più sul funzionamento della 
macchina e quindi vogliono imparare da 
zero il linguaggio assembler: questo libro 
sarà per essi una guida utilissima che li 
condurrà per mano dai primi passi fino a 
programmi di un certo respiro scritti in lin- 
guaggio macchina. La seconda fascia è for 
mata da coloro che, pur conoscendo 
['assembler del Commodore 64, vogliono 
approfondire le loro conoscenze sull'inte- 
razione tra Basic, sistema operativo e lin- 

E uaggio macchina, questo libro sarà per 
jro una preziosa fonte di informazioni e 
consigli. Allo scopo di facilitare la com- 
prensione, sono stati tradotti i commenti 
dei programmi e anche il nome delle va- 
riabili è stato adeguato a! loro significato 
italiano. 



mrc' 


H Basic per tutti 

Iniziazione più programmi 
Autori: Jacques Boisgontier. Sophie Brebion 
Pagine: 160 Formato: 17x24 
Brossura cucita ISBN 88 7688.501.3 
Ut. 16.000 

Imparate a programmare con il "11 Basic 
per tutti" in mano Mettetevi davanti al vo 
stro computer (Apple, Commodore 64, TRS 
80) e Incominciate a scrivere alcune istru 
zioni. Molto rapidamente assimilerete le 
nozioni fondamentali della programmazio 
ne: variabili, test e loop. 

Riuscirete a "comprendere" il computer e 
a sapere ciò che ne potrete ricavare. Ma 
non è tutto. Grazie ai numerosi esempi il 
lustrati e ai programmi commentati acqui 
sirete senza difficoltà le basi necessarie ad 
approfondire le vostre conoscenze e a seri 
vere i vostri programmi di gestione, didat 
tici e di giochi. 


mi £m, tm mi mi mi m\ mi mi mi fm t mi 







Guida per l'Apple 

Autore: Benoit De Merly 
voi 1 L'Apple standard 
Pagine 168 Formato: 15x21 
Brossura cucita ISBN 88.7688.205.7 
Ut. 17.000 

voi. 2 • Le estensioni 
Pagine: 170 Formato: 15x21 
Brossura cucila - ISBN 88.7688.206.5 
Ut. 18.000 

voi. 3 - Le applicazioni 
Pagine: 194 Formato: 15x21 
Brossura cucila - ISBN 88.7688.207 3 
Ut. 19.000 

Quest'opera si rivolge a lutti coloro che uti- 
lizzano un personal computer Apple e si 
rivelerà presto indispensabile nella ricer- 
ca delle migliori possibilità di questo 
personal. 

Grazie ai diversi livelli di comprensione si 
potranno affrontare in una prima lettura 
solo i capitoli semplici, per esempio quelli 
sul Basic. Più ne saprete e più avrete voglia 
di proseguire. Voi diventerete chi ne sa un 
po' di più e comprende meglio e padroneg 
già la sua macchina 

Argomenti trattati sono: il Basic Apple soft, 
possibilità grafiche, sonore e giochi, la pro- 
grammazione in assembler del 6502, le 
estensioni, il sistema UCSD, la softcard Z-80 
CP/M, carte di estensione per l'Apple II. pre- 
sentazione delle applicazioni esistenti, il 


L'Apple 


i suoi files 


Metodi pratici 
Autore: Jacques Boisgontier 
Pagine: 180 - Formato: 15x21 
Brossura cucita - ISBN 88.7688.204.9 
Ut. 19.000 

Per non entrare troppo rapidamente nella 
programmazione delle applicazioni che 
utilizzano i files. l'opera inizia con una 
presentazione concisa e illustrata dei co- 
mandi del sistema operativo disco e delle 
istruzioni del Basic Applesoft in seguito 
vengono descritte le istruzioni dei files se- 
quenziali e ad accesso casuale e viene spie- 
gato il loro impiego con l'aiuto di pro- 
grammi classici di creazione, modifica e 
ordinamento di files. abbondantemente 
commentati. 

Alcuni metodi pratici, spesso poco cono- 
sciuti, mostrano come utilizzare al meglio 
i files ad accesso casuale, l'accesso indiciz- 
zato, l'allocazione dinamica, il codice 
ASCII, le liste inverse. 

Una ventina di programmi illustrano l'im- 
piego di queste tecniche. 


Autore: Jacques Boisgontier 
Pagine: 127 Formato 17x24 
Brossura cucita - ISBN 88.7688.004.6 
Ut. 13.000 

Appassionati dell'Apple ecco un libro per 
voi. Destinato ai possessori di un Apple Ile, 
di un Apple II plus o di un Apple II C que- 
sta raccolta di programmi si articola su 


tu programmi di geografia, ortogra 
Ita, inglese, disegno 

• Gestione, che sviluppa alcuni esempi co- 
me l’annuario telefonico, i file di indirizzi 
(eventualmente utilizzabili per invio cir 

• Giochi, tutti i grandi giochi classici: il gio 
co dei fiammiferi, i bioritmi, il gioco del 
l'impiccato, il gioco della vita, Marienbad 
e molti altri sono trattati con originalità 

Tulli questi programmi, largamente com 
mentati e illustrati vi permetteranno di ap 
profondire la vostra conoscenza del Basic 
e vi serviranno come trampolino di lancio 
per delle nuove creazioni. 


DESIDERO RICEVERE I SEGUENTI TITOLI 


□ VOGLIATE PER FA 


fm. fm mi tm tm tm. m% 


trattamento dei testi, i piani di lavoro elei- 
ironici, gestione dei files e basi di dati, la 
telematica e le reti, presentazione dei risul- 
tati in forma grafica. 



‘m. fm f fm fm fm im f fm fm, fm, f.m, m tm, 



■■ OECONCMAT 




102 programmi per Commodore 64 

Autore: Jacques Deconchat 
Pagine: 243 ■ Formato: 17x24 
Brossura cucita - ISBN 88.7688.100.X 
Ut. 20.000 

Imparare divertendosi, questo è l'obiettivo 
di questo libro. Sul filo di questi 102 pro- 
grammi di giochi esso vi guiderà nell'esplo- 
razione del Basic del Commodore 64. I 
Programmi sono classificati a seconda del 
livello di difficoltà e ciascuno fa appello a 
delle nuove conoscenze e ad una crescen- 
te padronanza del Basic. Ogni livello co- 
mincia con una presentazione concisa 
delle nuove istruzioni utilizzate. Tutti i gio- 
chi sono ampiamente descritti e i program 
mi sono esaurientemente commentati. Per 
ogni versione è dato un esempio di ese- 
cuzione. 



CP/M passo dopo passo 

Guida pratica 
Autore: Alain Pinaud 
Pagine: 128 Formato 17x24 
Brossura cucita - ISBN 88.7688.002.X 
Ut. 13.000 

Quest'opera si rivolge al lettore desidero- 
so di utilizzare il sistema operativo CP/M. 
A questo scopo descrive in modo pedago- 
gico con il sostegno di numerosi esempi 
tutti i comandi di questo sistema e i loro 

E ossibili utilizzi. Sarebbe preferibile che il 
more possedesse un computer munito di 
CP/M sul quale poter fare della pratica. Le 
conoscenze richieste sono modeste: avere 
qualche nozione di informatica generale e 
conoscere, se possibile, il linguaggio as- 
sembler (ma questo non è indispensabile). 



i.u pratica dello ZX Spectram 

voi. 1 - Basic approfondito e introduzione 
al linguaggio macchina 
Autore: Xavier Linant de Bellefonds 
Pagine: 160 - Formato: 15x21 
Brossura cucita ISBN 88.7688.202.2 
Ut. 15.000 

Destinato a completare la documentazione 
di base dello ZX Spectrum, questo manua 
le sfrutta tutte le possibilità del Sinclair nel- 
l'ambito della programmazione avanzata. 
L'autore vi espone in maniera accurata- 
mente graduata: la definizione di caratteri 
e le funzioni di stringa (archivi, alfabeti, 
trattamento di testi); l’alta definizione gra- 
fica e la potenza di calcolo (regressione, 
grafici a tre dimensioni); il colore e il suo- 
no (svariati giochi); le tecniche di accesso 
diretto alla memoria e di utilizzo del lin- 
guaggio macchina. 

1 possessori dello ZX-81 troveranno in que- 
sto manuale numerosi programmi trasfe- 
ribili che possono essere introdotti tali e 
quali sul foro calcolatore. 


Dizionario di informatica 

Autore: Michel Ginguay 
Pagine: 216 - Formato: 17x24 
Brossura cucita - ISBN 88.214.0519.2 
Masson Italia Editori 
Lit. 19.500 

Il rapido sviluppo dell'informatica ed il suo 
largo uso applicativo ha coinvolto in bre- 
ve persone e ambienti diversi e lontani dal- 
la cerchia degli "addetti ai lavori" che 
debbono necessariamente documentarsi 
su testi in prevalenza di lingua inglese. 
Quest'opera risponde all'esigenza di avere 
a disposizione un dizionario particolar- 
mente orientato alla terminologia informa- 
tica che riporti non solo i vocaboli e le 
locuzioni del gergo, ma anche fornisca il 
significato particolare attribuito nel conte- 
sto informatico a termini del linguaggio 
corrente e che sarebbe vano ricercare in 
pubblicazioni rivolte alla lingua letteraria. 



La pratica dello ZX Spectrum 

voi. 2 Programmazione in linguaggio 
macchina 

Autore: Marcel Henroi 
Pagine: 164 Formato: 15x21 
Brossura cucita - ISBN 88.7688.203.0 
Ut. 15.000 

Quest’opera, dedicata alla programmazio- 
ne in linguaggio macchina, è accessibile a 
lutti coloro che abbiano assimilato la pro- 
grammazione in Basic avanzato. 

La correlazione tra i comandi Basic ed l co- 
dici macchina è stata la preoccupazione 
principale dell'autore, che porta progressi- 
vamente il lettore alla comprensione di 
routine sempre più complesse. 

I tre aspetti principali dello Spectrum: il 
suono, il colore, l'aita risoluzione sono og- 
getto di numerosi programmi in lutt ' 

A poco a poco si analizzano le operazioni 
logiche, il trattamento delle iterazioni, - 
segnazione particolare dello Spectrum « 
nimazione sullo schermo. 

II lettore attento, quando avrà chiuso que 
sto libro, elaborerà dei programmi perso 
nali in codice macchina. 


Microprocessori e microcalcolatori 

Autore: Robert Lyon-Caen 
Pagine: 276 - Formato: 17x24 
Brossura cucita ISBN 88.214.0520.6 
Masson Italia Editori 
Ut. 21.000 

Il testo vuole essere una guida allo studio 
delle tecniche di base per l'uso dei micro- 
processori. Espone la struttura e il funzio- 
namento dei microprocessori, riporta alcu- 
ni esempi di applicazione relativamente 
semplici ed illustra i principi dei metodi di 
programmazione. L'opera ha caratteristica 
prettamente tecnica e non presuppone co- 
noscenze particolari di matematica e fisica. 








il* 


il tempo al computer 


di Corrado Giustozzi 


Q ual è quell appassionalo di computer. hohby- 
sla o professionista, che la sera, prima del 
telegiornale, guardando le previsioni del tem- 
po. non ha pensato almeno una volta ad A fro- 
dite? Intendiamoci, non alta dea della bellezza, 
che pure è un bel pensiero ma non c'entra 
niente coi computer o con la meteorologia. 
Intendiamo ovviamente il programma Afrodi- 
te. responsabile delle previsioni meteorologi- 
che nazionali. Pensateci bene: non vi è mai sorta la curiosità 
di saperne di più. di conoscere cosa si nasconda dietro questo 
nome tanto etereo quanto misterioso? Crediamo proprio di 
si. E, se vi ci siete soffermati un attimo, vi sarete anche 
accorti che... non cera proprio modo di saperne di più. / 
vaghi articoli apparsi sulla stampa non specializzata certo 
non costituiscono una buona fonte d'informazione, almeno 
per quanto riguarda il profilo tecnico. Ed è un peccato. 


perché solo conoscendo una cosa si è in grado di accettarla, 
di utilizzarla criticamente: tanto più quando ce di mezzo il 
computer. Bene, continuando nella nostra serie di reportage 
sulle applicazioni se vogliamo poco comuni o comunque poco 
note dell'informatica " seria ”, questo mese abbiamo voluto 
occuparci proprio di Afrodite. Ci è sembrato infatti un argo- 
mento piuttosto stimolante per le sue implicazioni, ma so- 
prattutto molto d'attualità visti i... capricci meteorologici 
del neonato 1985. 

E quindi. Marinacci ed io siamo andati a trovare il papà di 
Afrodite con i suoi computer e due noti meteorologi , per 
cercare di fare il punto sulla situazione attuale delle previsio- 
ni a! calcolatore. 

Questo che state leggendo è appunto il resoconto della 
visita a casa di Afrodite, con tanto di commento degli esperti: 
ovvero, tutto ciò che avreste voluto sapere su Afrodite ma... 
non avete mai saputo dove andare a cercare. 


MCmicrocomputer n. 38 - febbraio 1985 






È un freddo sabato pomeriggio di metà 
gennaio. Via Teulada mostra ancora evi- 
dentissime tracce della nevicata della setti- 
mana scorsa. Qualcuno gira ancora con le 
catene. Siamo diretti al numero 66. dove 
ha sede il centro di produzione RAI. Supe- 
riamo le formalità di rito all'ingresso e ci 
dirigiamo verso lo studio 12, dove si fanno 
le rubriche del TG I e le varie edizioni del 
telegiornale. Siamo qui per incontrare una 
delle persone che. tutte le sere, hanno il 
compito e la responsabilità di raccontare 
agli italiani che tempo farà il giorno dopo: 
Guido Caroselli. Ha finito da poco di regi- 
strare e ci sta aspettando in una delle mol- 
teplici sale di regia disseminate nei corri- 
doi. Entriamo nello studio e. seduti sulle 
comode poltrone degli speaker del TG I. 
assistiamo in religioso silenzio alla lettura 
in diretta delle estrazioni del lotto: e final- 
mente lo studio resta a nostra disposizione. 
Il primo sguardo va al notissimo angolo 
del meteorologo, proprio alle nostre spalle: 
il tabellone dell'Europa con la situazione 



in quota, quelli dell'Italia con le tempera- 
ture e le previsioni, i monitor con le imma- 
gini Meteosat... un ambiente che tutti con- 
sideriamo familiare, per averlo visto ora- 
mai migliaia di volte. Perché siamo venuti 
in questo regno delle isobare e degli antici- 
cloni? Per sentire il parere di un esperto 
sulle attuali previsioni meteorologiche di 
tipo numerico, ma soprattutto per sapere 
se ed in che modo il computer ha cambiato 
il suo modo di lavorare. 

La prima domanda é scontata: “Ma A- 
frodite ci azzecca o no?". Caroselli sorride. 
“Non dovreste chiederlo a me. Comunque 
direi di si. II programma fornisce degli sti- 
matori. che in gergo si chiamano predit- 
tandi. che sono generalmente piuttosto 
buoni, specialmente nell'arco di tempo da 
due-tre giorni fino a cinque". E quindi la 
domanda successiva viene da sé: “Ma allo- 
ra che scopo ha la figura del meteorolo- 
go?”. "Col programma Afrodile si è cerca- 
lo di oggettivizzare le conoscenze del me- 
teorologo. realizzando uno strumento che 





facesse previsioni non in base all'esperien- 
za. ma applicando criteri obiettivi. Facen- 
do ciò però si è forse persa parte della 
sintesi necessaria in certe occasioni, nel 
senso che Afrodite fornisce dati molto det- 
tagliati e analitici, che sono senza dubbio 
oggettivi, ma meno immediatamente uti- 
lizzabili di una descrizione a parole, sen- 
z'altro più imprecisa, ma forse più utile e 
più chiara. Il nostro compito è allora quel- 
lo di tradurre i numeri forniti da Afrodite 
in previsioni, integrandoli anche con l'e- 
sperienza e le sensazioni personali. Cosi se 
le previsioni mi dicono che domani sera ci 
sara 1*80 per cento di probabilità di precipi- 
tazione e che la temperatura si manterrà 
sotto Io zero io dirò che ci sarà una buona 
probabilità che nevichi; come ho fatto la 
sera prima che nevicasse qui a Roma, 
quando mi ricordo dissi testualmente che 
c'era una 'spasmodica attesa di neve" nel 
Lazio e su Roma in particolare". “A que- 
sto punto”, chiediamo, “ci dica come si 
svolge la sua normale giornata di lavoro". 



n. Al centro, le tlue CPl 4JJI IBM . . in prono piuno un 


MCmicrocomputer n. 38 - febbraio 1985 


29 


“Bene, comincia quando mi reco in mac- 
china al C.N.M.C.A., meglio noto come 
Servizio Meteorologico dell'Aeronautica. 
Li prendo visione delle carte con la situa- 
zione attuale e delle previsioni, e magari ne 
discuto con il personale del Servizio, scam- 
biando opinioni e pareri. Raccolte tutte le 
informazioni risalgo in macchina e vengo 
qui in RAI dove con maggiore calma stu- 
dio la situazione e preparo la mia previsio- 
ne. Lo faccio, come dicevo, tenendo conto 
dei valori previsti da Afrodite, ma anche 
considerando la mia visione dell'evoluzio- 
ne dei fenomeni in corso, al limite median- 
do un po' fra le due. In generale, comun- 
que, mi succede di trovarmi piuttosto in 
accordo con Afrodite. A questo punto, os- 
sia fatta la previsione, passo a riportare i 
valori sui vari tabelloni, disegno la carta 
del tempo e verso le 17,30 registro la tra- 
smissione. Non mi preparo prima il discor- 
setto, preferisco improvvisare di fronte al- 
la telecamera anche se la rubrica non va in 
diretta: in effetti registriamo solo per evita- 
re interferenze operative col telegiornale, 
che viene fatto nello stesso studio, ma in 
diretta. La stessa cosa fa, ovviamente, il 
col. Baroni quando "tocca" a lui". 

Usciamo dalla RAI dopo circa un'ora di 
interessante chiacchierata. Il secondo pas- 
so consìste nel saperne di più su Afrodite. 
E come fare ad avere queste notizie se non 
domandandole direttamente a chi Io ha 
fatto? Cosi il martedì successivo, indirizza- 
ti dallo stesso Caroselli, ci rechiamo al 
Centro Nazionale di Meteorologia e Cli- 
matologia Aereonautica, all’EUR. per di- 
scutere gli aspetti più tecnici di Afrodile. Il 
nostro ospite è il lenente colonnello Carlo 
Finizio, il quale, dopo averci illustrato in 
generale le attività del Servizio ci presen- 
ta... il papà di Afrodite, il capitano Costan- 
te de Simone. Laureato in Fisica a Roma e 
specializzatosi in Fisica dell'Atmosfera 
(Roma), Previsioni Numeriche (Reading) 
e Previsioni Statistiche (Parigi), dal 1977 in 
Aereonautica, il capitano de Simone è co- 
lui che ha effettivamente scritto Afrodite. 
Responsabile del sistema numerico di pre- 
visioni dell' Aereonautica, ha anche lavo- 
ralo come incaricato italiano presso il Cen- 
tro Europeo per le Previsioni a Medio Ter- 
mine di Reading (Inghilterra), effettuando 
sul Cray-XMP lì installato una buona par- 
te del lavoro preparatorio e di messa a 
punto di Afrodite. Con lui entriamo effet- 
tivamente nei dettagli della vicenda, e non 
solo per quanto riguarda Afrodite. Alla 
fine della mattinata avrò collezionato di- 
versi fogli di appunti che mi ricordano 
quelli dell'Università. 

Il meccanismo di massima con cui si 
giunge alle previsioni è piuttosto semplice 
concettualmente, come vedremo; ma viene 
reso terribilmente critico dall'enorme mas- 
sa di dati da ricevere ed elaborare in tempi 
piuttosto stringenti. 

Il capitano de Simone, dopo aver impu- 
gnato un gessetto ed averci fatti sedere da- 
vanti ad una lavagna (ci guardiamo, sen- 
tendoci tornati a scuola) ci tiene una mini- 





MCmicrocomputer n. 38 - febbraio 1985 




lezione spiegandoci che per avere una pre- 
visione locale attendibile a dodici ore è 
necessario disporre dei dati meteorologici 
rilevati entro un raggio di un migliaio di 
chilometri dal punto interessato perché la 
previsione possa essere estesa a 24 ore tale 
raggio si allarga a circa 3.000 chilometri, e 
diventa tutto un emisfero nel caso si richie- 
da una previsione a 48 ore. 

Per le previsioni a lunga scadenza, fino a 
otto-dieci giorni, servono i dati di tutto il 
globo. 

Il Centro Europeo di Reading in effetti 
riceve proprio i dati di tutte le stazioni 
meteorologiche del mondo, già da molti 
anni organizzate in una rete internaziona- 
le. Ogni Paese raccoglie le informazioni 
provenienti dalle proprie stazioni e le tra- 


smette, oltre che agli altri Paesi, al centro di 
Reading, dove ogni otto ore affluiscono le 
rilevazioni effettuate da circa 5.000 stazio- 
ni meteorologiche dislocate in tutto il mon- 
do, a terra, su navi e su sonde atmosferi- 
che. 

Il flusso di dati in arrivo è di circa ottan- 
ta milioni di bit al giorno. A Reading c'è, 
come dicevamo, un Cray-XMP, il più 
grande supercomputer del mondo: forma- 
to da due CPU Cray-1 in parallelo. l'XMP 
è capace di circa 150 Mips, ossia centocin- 
quanta milioni di operazioni al secondo. 

Tale velocità non è un lusso, ma un ob- 
bligo; la sola fase di preelaborazione dei 
dati grezzi per renderli adatti ad essere in- 
seriti nel modello matematico richiede 30 
miliardi di operazioni al giorno! Si vede 


come un computer "normale” non potreb- 
be stare al passo con il lavoro, tanto più 
che la preelaborazione è solo una piccola 
fase del lavoro. 

I dati trasformati servono ora da input 
ad un modello matematico dell'astmosfe- 
ra, che è il vero “previsore". 

Un modello matematico non è altro che 
l’insieme delle conoscenze, vere o suppo- 
ste, delle leggi che regolano un dato feno- 
meno; esso quindi consente di simulare il 
comportamento del fenomeno in esame, 
"proiettando" nel futuro la sua evoluzio- 
ne. Se il modello è fatto bene, le previsioni 
non si discosteranno molto da ciò che av- 
rebbe fatto nella realtà il fenomeno analiz- 
zato. 

II modello dell'atmosfera messo a punto 
a Reading è, naturalmente, un oggetto as- 
sai complesso. 

Semplificando parecchio, si tratta di un 
enorme sistema di equazioni differenziali 
dipendenti dal tempo, oltretutto non linea- 
ri e quindi non risolubili analiticamente, 
ma solo per via numerica. 

L'elaborazione del modello per ottenere 
una previsione a dieci giorni implica la bel- 
lezza di cinquecento miliardi di operazioni! 

Un calcolatore da un milione di opera- 
zioni al secondo impiegherebbe quasi sei 
giorni per risolvere il sistema e fornire 
quindi le previsioni; che, quindi, non sa- 
rebbero a dieci giorni ma a quattro, e per 
giunta di qualità scadente essendo basate 
su dati di sei giorni prima! 

Il Cray di Reading invece se la cava in 
circa un’ora e mezza, tempo che sembra 
bassissimo ma non lo è. in quanto non 
appena finisce l'elaborazione di una previ- 
sione parte subito quella della previsione 
successiva basata sui dati che nel frattem- 
po hanno continuato ad arrivare. La tem- 
pificazione delle attività è pertanto la se- 
guente: stabilito ipoteticamente che le cin- 
quemila stazioni del mondo facciano o- 
gnuna le sue misure all'ora zero, e le invii- 
no gerarchicamente ai propri centri di rac- 
colta nazionali, ci vogliono circa tre ore 
perchè tutti i dati giungano a Reading. Alle 
tre di mattina comincia quindi la preelabo- 



MCmicrocomputer n. 38 - febbraio 1985 


31 




razione, che dura circa un'ora. Alle quat- 
tro i dati sono pronti e parte l’elaborazione 
del modello, che impiega appunto circa 
un'ora e mezza. Alle cinque e trenta è pron- 
ta la previsione a dieci giorni che viene 
subito rilanciata a tutti gli utenti, risultan- 
do cosi elTetlivamente disponibile entro 
sole sei ore dalle misure meteorologiche. 

Il modello di Reading. però, non forni- 
sce le previsioni nazionali per singole loca- 
lità, e in particolare per l'Italia. Questo è 
appunto compito di Afrodite. E quindi do- 
po averci inquadrato operativamente il 
funzionamento della rete per le previsioni 
atmosferiche, il capitano de Simone passa 
a spiegarci in dettaglio le operazioni che si 
svolgono al C.N.M.C.A.. Il modello di 
Reading simula la terra in modo discreto, 
mediante un reticolo di punti posti sulla 
superficie del globo ad una distanza ango- 
lare di un grado e mezzo, che alle nostre 
latitudini corrispondono a circa cento chi- 
lometri. Il reticolo in realtà ha anche un'e- 
stensione nella direzione verticale, in più 
"strali" posti sopra al corrispondente pun- 
to al suolo. Per ogni punto del reticolo il 
Centro di Reading fornisce come output i 
valori previsti di cinque quantità: pressio- 
ne atmosferica, direzione e intensità del 
vento, temperatura ed umidità. Succede 
però che i dati più attendibili sono quelli 
riferiti a quote elevate, e questo per le ovvie 
azioni modificatrici imputabili all'orogra- 
fia del particolare sito in considerazione, di 
cui il modello tiene conto solo in parte. 
Inoltre per un paese dall'orografia cosi tor- 
mentala come il nostro, è facilmente intui- 
bile che un reticolo di cento chilometri di 
lato è troppo lasco per avere una buona 
precisione. Infine la “larghezza" dell'Italia 
è paragonabile alla risoluzione del reticolo, 
e ciò fa ovviamente scadere ulteriormente 
l'affidabilità delle previsioni al suolo. Per 
avere allora delle previsioni locali al suolo 
che siano attendibili, diventa necessario ri- 
correre ad un "trucco": un ulteriore mo- 
dello matematico che. ricevendo come in- 
put gli attendibili valori previsti in quota 
(predittori). applichi loro un'opportuna 


funzione di trasformazione che porti in 
conto l’orografia nazionale, per fornire 
un'ulteriore serie di valori (predittandi) 
che rappresentino i parametri al suolo rela- 
tivi a siti ben precisi. Questo modello, o 
meglio questa funzione di trasformazione, 
é proprio Afrodite. Simbolicamente pos- 
siamo scrivere la trasformazione come 
y = F(x), dove F è Afrodite, x sono i predit- 
tori forniti da Reading e y sono i predittan- 
di in uscita dal programma. Attualmente 
Afrodile è costituito da 16.737 funzioni 
polinomiali che ricevono 100.919 x e forni- 
scono 8.358 y ogni giorno. I coefficienti dei 
polinomi sono stati ottenuti mediante un 
procedimento di regressione ai minimi 
quadrati applicato agli ultimi trenta anni 
di registrazioni meteorologiche nazionali. 
Ossia per ogni registrazione meteorologica 
degli ultimi trenta anni si è sviluppata una 
previsione, confrontandola poi con l'effet- 
tivo avvenimento: i coefficienti incogniti 
sono stati scelti in modo che l'errore fra 
valori previsti e valori verificati fosse mini- 
mo. Questa ricerca, per la cronaca, è stata 
svolta sul Cray di Reading. in circa dieci 
ore macchina. 

I parametri previsti da Afrodite vengo- 
no trasmessi dal C.N.M.C.A. a una vasta 
classe di utenti: traffico aereo militare e 
civile, ministeri, grandi enti (ENEL. ENI. 
RAI. SIP. Autostrade), ognuno dei quali 
ne fa l'uso che ritiene necessario (e spesso, 
temiamo, li ignora...). Se fosse organizzato 
un servizio di banca dati pubblico, ogni 
utente in possesso di un personal potrebbe 
collegarsi per avere le previsioni locali: e 
magari, avendo le funzioni di trasforma- 
zione ed i parametri ad hoc (ed i dati di 
Reading) calcolarsi le previsioni per il 
suo... quartiere o isolato. Ma per il mo- 
mento non è prevista l'apertura al pubbli- 
co di questo servizio, per cui l'uomo della 
strada dovrà continuare ad ascoltare la 
radio o la televisione per sapere che tempo 
farà il giorno dopo. Naturalmente le attivi- 
tà del C.N.M.C.A. non si limitano a far 
girare Afrodite: il Centro raccoglie diretta- 
mente i dati delle stazioni italiane e di quel- 


le europee (dai nodi di Parigi e Offenbach 
via telefax) elaborando previsioni autono- 
me. oltre a compiere altri lavori di ricerca. 
Attualmente I hardware in dotazione al 
Centro consiste in due IBM 4341 in paral- 
lelo. ognuno con 8 Megabyte di memoria 
centrale. 

L'ultima tappa del nostro viaggio den- 
tro Afrodite è praticamente d'obbligo. Do- 
po aver sentito le voci dei responsabili del 
programma e di un meteorologo “giova- 
ne". non potevamo non sentire quella del 
meteorologo "anziano", forse il primo in 
Italia ad aver dato a questa scienza una 
collocazione ben precisa presso il grosso 
pubblico. Parliamo ovviamente del colon- 
nello Edmondo Bernacca. che siamo anda- 
ti a trovare nella sua casa situata (combi- 
nazione?) a poche centinaia di metri dal 
C.N.M.C.A.. In un intero pomeriggio di 
chiacchierata, il colonnello ci ha esposto la 
sua opinione e le sue perplessità sull'uliliz- 
zo indiscriminato di strumenti di previsio- 
ne automatica. “Non che la strada intra- 
presa non sia quella giusta, credo solo che 
si sia voluto fare il passo un po' più lungo 
della gamba. Non si può sostituire comple- 
tamente e repentinamente la macchina 
all'uomo: c'è ancora bisogno di meteorolo- 
gi che sappiano disegnare le carte a mano 
partendo dalle osservazioni, che le sappia- 
no leggere ed interpretare alla luce del ra- 
gionamento e dell'esperienza. Con Afrodi- 
te si è voluto abbandonare la meteorologia 
'tradizionale': ma Afrodite non è ancora 
un sistema esatto, non conosciamo ancora 
con sufficiente precisione le leggi che rego- 
lano i fenomeni fisici nell'atmosfera". Gli 
chiedo: “Lei crede che sarebbe stato neces- 
sario un più lungo periodo di 'parallelo' tra 
Afrodite e quella che lei chiama meteorolo- 
gia tradizionale?". “Certamente. La me- 
teorologia tradizionale rimane valida, è un 
supporto cui appoggiarsi per proseguire 
nello studio dei modelli numerici di previ- 
sione. Senz'altro si arriverà ad avere previ- 
sioni automatiche molto attendibili, ma 
quelle attuali non lo sono totalmente: ad 
esempio, risultano nettamente in errore in 
caso di fenomeni repentini e di breve dura- 
ta. che non fanno in tempo a prendere in 
considerazione." 

E quest'ultima visita conclude la nostra 
indagine sulla meteorologia al calcolatore. 
In strada, al solito, i commenti a caldo. La 
sensazione che entrambi abbiano riportato 
è che in questa vicenda ci sia forse troppo 
Calcolatore e troppo poco Uomo. Indub- 
biamente Afrodite va meglio di un uomo 
per fare le previsioni a cinque giorni, ma ci 
sono cose che sfuggono ad un modello ma- 
tematico: e quindi deve esserci una persona 
ad accorgersene. Il C.N.M.C.A. ha imboc- 
cato senza dubbio la strada giusta: ma for- 
se. come diceva Bernacca. un passaggio 
meno brusco dall'uno all'altro metodo av- 
rebbe potuto giovare ad entrambi. È sera 
tardi, e ci salutiamo. In questo momento 
va in onda la rubrica di Caroselli. Immagi- 
no già cosa dirà, ho i tabulati di Afrodite 
nella ventiquattr'ore... MC 


32 


MCmierocomputer n. 38 - febbraio 1985 





MASS STORAGE SOLUTIONS 


...se al vostro Personal Computer: 


Hf-SPERSV PC 

Panasonic 


modello 4 
ITT X TRA 


oliwetti 

ItaltelMgtMisfc 

ERICSSON 

Texas 

Instruments 



Aggiungete 


Q^cipplo computer 
viCTf» sirìus 
EPSON 


SANYO 

apricot . 




ADD-IN 

Espansione interna con unità 
Winchester da 1 0-20-30 
megabytes complete di: 

• Controller residente 

• Unità a disco Winchester 

• Kit di montaggio 

• Documentazione in italiano 

• Programmi di utilità 


Otterrete un nuovo più potente sistema, perfettamente compatibile con quello originale, 
"massimizzando” la memoria e “minimizzando” l'investimento. 

L'ampliamento di memoria avviene in ambiente di estrema affidabilità, con prestazioni 
superiori, utilizzando i leggendari prodotti XEBEC, “thè zero defect company", leader 
mondiale nella progettazione e realizzazione di Controllers e Memorie di massa. 

Caratteristiche particolari: 

- Parcheggio testine su zona priva di dati. 

- Correzione automatica degli errori. 

- Back-up automatico. 

- Boot strap diretto da hard-disk. 

Le “soluzioni" FORUM sono garantite per un anno dall’installazione. 


INFORMATICA VIOEO TELEMATICA 


Via Asmara, 58 - 001 99 Roma 
Tel. 06/8395766-8394458 TLX 616130 


Distribuzione per l'Italia: 




modo che sul video compaia- 
no di volta in volta indicazio- 
ni sullo stadio dell'evoluzio- 
ne (generazione), sul numero 
di individui nati e morti nel 
passaggio dalla generazione 
precedente a quella attuale, 
sulla densità della popolazio- 
ne attuale e sulla variazione 
rispetto alla generazione pre- 
cedente. In questo modo si 
possono seguire gli eventi 
con maggior precisione, e si 
hanno più mezzi per inter- 
pretare il comportamento 
della colonia. I risultati che si 
ottengono mostrano che ge- 


neralmente le colonie troppo 
dense o troppo sparse non 
hanno vita lunga, ma tendo- 
no ad estinguersi rapidamen- 
te o a degenerare piuttosto in 
fretta in strutture stabili, os- 
sia che non mutano in nume- 
ro e disposizione degli indivi- 
dui vivi da una generazione 
all'altra. Questo comporta- 
mento. dei resto facilmente 
prevedibile, avviene in quan- 
to in una generazione troppo 
poco densa sono poco pro- 


babili nuove nascite (che ri- 
chiedono tre vicini vivi) men- 
tre sono molto più probabili 
le morti per isolamento; al 
contrario, una generazione 
particolarmente densa ne 
produce immancabilmente 
una estremamente rarefatta, 
a causa delle numerose morti 
per sovrappopolazione. Ag- 
gregali con densità interme- 
die sviluppano invece com- 
portamenti più variati e du- 
raturi; la densità non varia di 
molto fra una generazione c 
l'altra, ed è probabile che col 
tempo si creino alcune “iso- 
le" stabili circondale da 
gruppi di cellule dall'evolu- 
zione caotica ed incerta, il cui 
destino non appare chiaro se 
non dopo mollissime mosse. 
Appare evidente che questo 
modo di giocare Life permet- 
te. però, di comprenderne so- 
lo le proprietà di tipo statisti- 
co e per di più riferite alla 
globalità della struttura, 
mentre non ci mette affatto 
in grado di analizzare singoli 
comportamenti di gruppi dì 
cellule, in particolare dal 
punto di vista geometrico. 
Per fare ciò è necessario po- 
ter disporre gli individui del- 
la generazione iniziale nel 
particolare modo voluto, 
compiendo cioè il secondo ti- 
po di analisi di cui parlava- 
mo in precedenza. Ciò richie- 
de innanzitutto un program- 
ma un tantino più complica- 
to del precedente: esso, ad e- 
sempio. deve permettere di 
descrivere la posizione di o- 
gni individuo che si vuole in- 


Eccoci nuovamente a par- 
lare di Life. Nella puntata 
precedente di MCgiochi ab- 
biamo visto, se vi ricordate, 
le regole di base di questo 
gioco affascinante. Abbiamo 
fatto conoscenza con gli stra- 
ni abitanti unicellulari del- 
l'infinito mondo bidimensio- 
nale di Life ed abbiamo visto 
le leggi che ne regolano na- 
scita. morte ed evoluzione. 
Infine, abbiamo discusso 
brevemente di come si possa- 
no implementare in un pro- 
gramma per calcolatore le 
strutture e le regole del gioco. 
In questa seconda puntata ci 
addentreremo negli sviluppi 
del gioco stesso, comincian- 
do col vedere due possibili 
strategie di approccio allo 
studio di Life c finendo con 
l'incontrare particolari con- 
figurazioni di cellule dall'e- 
voluzione piuttosto peculia- 
re e talvolta sorprendente. 

Notiamo intanto che due 
sono le cose che viene spon- 
taneo lare quando si ha a di- 
sposizione un (buon) pro- 
gramma di calcolo di Life: 
studiare l'evoluzione di una 
grande colonia di cellule ot- 
tenuta generando a caso gli 
individui, oppure esaminare 
il comportamento di ben pre- 
cisi insiemi di poche cellule 
costruiti ad hoc. Entrambe le 
linee d'azione portano a svi- 
luppi piuttosto interessanti, c 
perciò degni di essere discus- 
si in questa sede; continuere- 
mo pertanto questa puntata 
andando a vedere ciò che 
succede in ognuno di questi 
due casi. Nel primo, lutto 
sommato, serve ben poco; un 
"mondo" piuttosto vasto (al- 
meno di 30 x 30) è l'unico re- 
quisito indispensabile. Si ge- 


nerano quindi a caso numero 
e posizione degli individui vi- 
vi al tempo zero, ottenendo 
la generazione iniziale; e 
poi... si sta a guardare. Già 
cosi il risultalo sarà piuttosto 
interessante, ma sono possi- 
bili diversi miglioramenti. 
Un modo più raffinato di 
procedere potrebbe intanto 
essere quello di stabilire a 
priori la densità della nostra 
popolazione iniziale, espres- 
sa come rapporto percentua- 
le fra numero di cellule vive e 
numero totale di cellule co- 
stituenti il mondo. Tanto per 
fare un esempio, se dispongo 
di un mondo di 30 x 30 cellu- 
le. partire con una densità del 


25", , significa che la mia ge- 
nerazione iniziale dovrà esse- 
recostituita da 225 individui. 
In questo modo si possono 
correlare densità iniziale e 
modalità di evoluzione della 
colonia, ottenendo chiari in- 
dizi di come sovrappopola- 
zione o isolamento influisca- 
no nel modificare la struttura 
nel corso del suo sviluppo. 
Potrebbe infine essere inte- 
ressante disporre opportuni 
contatori nel programma, in 









& 






e 



« 

o 

© 








34 


MCmicrocomputer n. 38 - febbraio 1985 





scrire. ma deve nel contempo 
dare la possibilità di tornare 
indietro per variare la posi- 
zione di individui già inseriti, 
cancellandoli. Se ci si limita a 
strutture composte di pochi 
individui allora il mondo 
può essere anche di dimen- 
sioni piuttosto limitate, a tut- 
to vantaggio della velocità di 
calcolo e dell'occupazione di 
memoria: ma vale sempre il 
principio per cui più spazio 
abbiamo a disposizione e 
meglio è. Tanto per esercitar- 
ci possiamo provare a vedere 
cosa succede con gruppi di 
tre individui adiacenti (appa- 
re chiaro dalle regole che 
gruppi aventi meno di tre 
membri muoiono subito). 
Provare per credere, delle 
cinque soie possibili disposi- 
zioni di tre cellule, tre si estin- 
guono alla seconda genera- 
zione. una diventa subito un 
quadrato di quattro punti 
che rimane stabile, e l'ultima 
si trasforma i un ...oscillatore 
con periodo 2! La configura- 
zione in questione è quella in 
cui le tre cellule sono allinea- 
te, ed alterna l’allineamento 
in direzione verticale a quello 
in direzione orizzontale. Con 
quattro cellule le cose non 
cambiano molto: le configu- 
razioni possibili sono solo 
cinque, e di esse una (il qua- 


drato) è e rimane stabile, tre 
si stabilizzano entro la terza 
generazione in una struttura 
vagamente esagonale detta 
"favo”, ed una si trasforma 
alla nona generazione in un 
oscillatore di periodo due 
formalo da quattro oscilla- 
tori a tre cellule del tipo visto 
prima. Non vi diciamo qual 
è la configurazione di parten- 
za per non togliervi il gusto 
di scoprirlo da soli. Passando 
a gruppi di cinque individui 
le cose sembrano complicarsi 
parecchio, e si cominciano a 
fare incontri con oggetti 
piuttosto strani. Uno dei più 
interessanti è quello che 
Conway (l'ideatore di Life) 
ha chiamato “aliante” (fig. 
I ): la sua evoluzione è tale 
che ogni quattro generazioni 
il gruppo ritorna alla sua for- 
ma originaria, ma si trova 
spostato, nel piano, di una 
casella a destra ed una in bas- 
so! In altre parole, l'aliante 
trasla sul piano alla velocità 
di una casella ogni quattro 
generazioni. Se lasciato fare 
è in grado di percorrere tutto 
il mondo uscendo ben presto 
dallo schermo del vostro cal- 
colatore. per poi eventual- 
mente rientrarvi dal lato op- 
posto se avete costruito il 
programma in base alle indi- 
cazioni date nella puntata 
precedente. Un comporta- 
mento piuttosto sorprenden- 
te, non vi pare? Un altro og- 
getto alquanto misterioso è 
quello che vedete in figura 2; 
potete provare a costruire il 
suo comportamento nelle 
prime mosse, ma sappiate 
che lo stesso Conway. col suo 


vecchio PDP-7. lo ha seguito 
fino alla quattrocentottante- 
sima (!) generazione senza 
riuscire a capire se e come 
terminerà il suo intricato svi- 
luppo. Se non avete tanta pa- 
zienza, ma volete comunque 
osservare qualcosa di simpa- 
tico, mettete cinque individui 
in fila indiana: anche una 
struttura semplice come que- 
sta vive una vita piuttosto 
complessa e movimentata! 

Ma il passo definitivo nel- 
lo studio di configurazioni 
particolari si compie quando 
si prendono in considerazio- 
ne aggregati di una dozzina 
di individui o anche più. Le 
cose, adesso, si fanno vera- 
mente complicate, e servono 
decisamente un buon pro- 
gramma, un calcolatore ve- 
loce ed una notevole dose di 
pazienza (oltre a molta pas- 
sione e molto tempo libero). 
Per fortuna gran parte del 
lavoro di scoperta è già sta- 
to fatto, evidentemente da 
qualcuno che disponeva di 
tutte queste cose. Anzi, da 
più di qualcuno: negli anni di 
grande boom di Life, un in- 
tero gruppo di ricercatori di 
intelligenza artificiale al 
M.I.T. si mise d'impegno al- 
lo studio di Life, ottenendo 
risultati che chiamare inte- 
ressanti è poco. Per uno di 
essi, tra l’altro, vinsero addi- 
rittura un premio bandito 
dallo stesso Conway e desti- 
nato a chi avesse saputo con- 
fermare o confutare una sua 
congettura riguardante l'e- 
spansione delle strutture di 
Life. Conway pensava che 
nessuna struttura potesse ac- 


crescersi all'infinito, ossia 
generare un numero infinito 
di individui: il gruppo del 
M.I.T. riusci a trovare un in- 
credibile controescmpio. che 
vedete in figura 3. Questa 
struttura di ventotto cellule, 
dall'apparenza innocua e 
"slegata", è invece un terribi- 
le "cannone ad alianti", co- 
me lo battezzarono i suoi 
scopritori. Nell'arco di qua- 
ranta generazioni esso si e- 
volve in una struttura dall'a- 
spetto altrettanto inverosi- 
mile. che costituisce il canno- 
ne vero e proprio: ossia un 
oscillatore di periodo 30, che 
"fabbrica" un aliante a cin- 
que cellule (del tipo visto in 
precedenza) ad ogni oscilla- 
zione e poi lo lascia andare! 
Questa struttura è quindi in 
grado di dare vita ad un nu- 
mero infinito di individui, i 
quali, oltretutto, se ne an- 
dranno in giro per l'eternità 
sull'illimitato piano di Life, 
sotto forma di aliante. Cre- 
diamo che il nome Life (Vita) 
per questo gioco sia. a questo 
punto, decisamente il più ap- 
propriato! 

Bene, per questa volta termi- 
niamo qui. Nella prossima 
puntata termineremo il di- 
scorso su Life... in bellezza, 
incontrando oggetti ancora 
più strani del cannone spara- 
alianti (ad esempio un man- 
gia-alianti. che ne dite?). Ve- 
dremo pure qualche altro 
gioco della famiglia di Life, e 
discuteremo di come sempli- 
ci variazioni alle regole di e- 
voluzione portino a strutture 
e comportamenti assai diver- 
si tra loro. tt€ 




MCmicrocomputer n. 38 - febbraio 1985 


35 




L'RDI. la compagnia alla quale si deve lo 
sviluppo della tecnologia del primo laser ga- 
me. Dragon's lair. sta per commercializzare 
un accessorio in grado di far finire in soffitta il 
povero, vecchio joystick. 

L'unità in questione si chiama Halcyon, e le 
sue caratteristiche principali consistono nella 
ricognizione e nella sintesi del parlato. Arma- 
to di unacuffietta dotata anche di microfono il 
giocatore può comandare Halcyon diretta- 
mente con la voce. Halcyon naturalmente è un 
sistema laser; per esso attualmente sono di- 
sponibili cinque giochi, quattro realizzati con 
la tecnica dei cartoni animati ed uno con spez- 
zoni dì un film commerciale. 

Dalla voce al semplice pensiero poi il passo 
è breve (beh. relativamente); a compierlo co- 
munque ci ha già pensato l'Atari. evidente- 
mente molto sensibile alle esigenze dei super 
pigri che non vogliono nemmeno sforzarsi a 
parlare. Mindlink (collegamento mentale) 
consente di comandare la consolle di video- 
giochi VCS. 7800 ed il computer Atari con la 
mente (ma c'c il trucco...). 

Il tutto consiste in un'unità trasmittente, 
collcgata ad un sensore da mettere intorno alla 
testa, ed in una ricevente, da inserire nella 
consolle. In realtà Mindlink non capta alcun 
messaggio cerebrale di sorta, ma basa il suo 
funzionamento sulla rilevazione degli impulsi 
muscolari quando si muovono le sopracciglia. 
L'aggeggio comunque fa incredibilmente sce- 
na. ed è anche abbastanza economico a soli 
100 dollari. 

Decisamente più caro Halcyon. che di dol- 
lari ne costa ben 2000: i joystick possono stare 
tranquilli ancora per un po'... 

MUD, 

l'avventura muiti-utente 

Si chiama MUD. ed c sicuramente la più 
affascinante avventura mai esistita. 

Cos'ha di tanto speciale? Lo dice il nome: 
MUD sta infatti per Multi User Dungeon. 
avventura multi utente. Questo vuol dire che 
può essere giocala contemporaneamente da 
più giocatori seduti ognuno al proprio termi- 
nale. che interagiscono fra loro nel corso del- 
l'avventura. parlandosi, aiutandosi o anche 
combattendosi, Lo scenario di MUD è ovvia- 


mente vastissimo, e comprende molti luoghi 
tipici delle avventure classiche: boschi, citta- 
delle. caverne c cosi via. Anche l'obiettivo è 
quello solito: esplorare più luoghi possibile 
raccogliendo tesori, combattendo mostri e so- 
prattutto sopravvivendo. 

Più ci sì inoltra nell'avventura più si guada- 
gna in esperienza: ci sono 10 livelli: Novizio. 
Guerriero. Eroe. Campione. Supereroe, In- 
cantatore. Negromante. Leggendario e Mago. 

È all'ultimo livello che inizia il vero diverti- 
mento: i maghi infatti sono esseri immortali 
per i quali ogni azione è lecita. Un mago ha in 
pratica il controllo totale della situazione: può 
costringere gli altri giocatori (eccetto gli altri 
maghi, ovviamente) a compiere le azioni che 
desidera e persino i mostri gli obbediscono. 
Tra le tante possibilità della condizione di ma- 
go vi c quella di avere sul monitor una copia 
dello schermo di qualsiasi altro giocatore, sen- 
za che questo se ne accorga; ciò permette di 
sapere sempre e comunque I utto quello che sta 
accadendo nell'avventura. 

Se uno dei giocatori si comporla male, di- 
sturbando gli altri, un mago può facilmente 
trasportarlo per un po' di tempo in qualche 
luogo senza uscite o addirittura escluderlo 
permanentemente dal gioco. 

È ovvio che una cosa del genere non può 
essere implementala su nessun micro in circo- 
lazione: ci vuole assolutamente un mainframe, 
infatti MUD gira su DEC 10 della Esse* Uni- 
versity. in Gran Bretagna. 

Giocarea MUD tuttavia non è un privilegio 
solamente degli studenti di quella università; c 
possibile collegarsi al DEC via telefono, a pat- 
to di possedere un computer fornito di modem 
e dell'opportuno software di comunicazione. 

L'unico vero problema è costituito dal co- 
sto della bolletta telefonica: una chiamata in- 
temazionale della durata di qualche ora non è 
proprio economicissima... 

MUD è un programma cosi grosso e com- 
plesso che vi si può accedere solo dopo la 
mezzanotte o durante i weekend, altrimenti 
potrebbe mancare lo spazio alle altre attività 
del centro. Chi sofTre d'insonnia e non ha 
problemi di vii denaro può richiedere ulteriori 
informazioni su MUD e sulle modalità neces- 
sarie [)er il collegamento scrivendo a: Richard 
Barile. Department of Computer Science. U- 
niversity of F-ssex, Wivenhoe Park. Colche- 
ster. Essex CQ4 3SQ. MC 



Come molli dei giochi attualmente 
prodotti per il Commodore 64. anche 
Borzak ha un caricamento veloce e una 
schermata grafica mollo colorata, che se 
allunga un po' il caricamento, se non 
altro allieta il povero giocatore costretto 
a vedere uno schermo altrimenti peren- 
nemente chiaro. 

Borzak è l'affascinante bestiola (rosa) 
dagli occhi d'insetto che viene dalla lon- 
tana stella Betelgeuse (thè amazing Bug- 
Eyed beaslie from Betelgeuse); la sua ca- 
ratteristica più appariscente, però, non 
sono gli occhi, bensì il naso, a trombetta 
come quello di ogni extraterrestre che si 
rispetti. Un errore la ha portata molto 
lontano dalla sua astronave, che deve 
quindi raggiungere, partendo dalla palu- 
de dove si trova. L'azione si svolge da 
sinistra verso destra, e propone insidie sia 
aeree che terrestri, seguendo l'usuale co- 
pione dei giochi a metà tra gli space inva- 
dere e il pac-man. 

La cassetta cita l’autore del gioco, tal 
Paul Hargreaves. ma anche chi ha tra- 
dotto l'originale per il Commodore 64. 
che è M. McKec ( 1 984): ciò spiega alme- 
no in parte il tipo di gioco, di per sé un po' 
lento e comunque non basato sulle carat- 
teristiche del computer su cui gira (a par- 
te la schermata in hi-res di cui sopra), 
cosa evidenziata anche dalla presenza di 
un solo livello di gioco. 

L.S. 


Produttore: 



36 


MCmicrocomputer n. 38 - febbraio 1985 





Dicono le note di copertina: "Nell'an- 
no 2525 la tecnica dei viaggi nel tempo è 
finalmente perfezionata. Gli scienziati 
che hanno realizzato il progetto vi man- 
dano indietro nel tempo, con un veicolo 
terrestre equipaggiato di tutto punto. Il 
vostro obiettivo è di assistere la razza 
umana in tutte le sue battaglie, dall'età 
preistorica alle conseguenze del conflitto 
finale. Solo il più completo successo della 
missione può assicurarvi il ritorno". Se 
per tornare dovete vincere sempre, delle 
due l'una: o la tecnica dei viaggi non è poi 
tutta questa bellezza, oppure gli scienzia- 
ti del 2525 sono sadici assai! 

Scherzi a parte, la Anirog ha tirato 
fuori un giochino abbastanza interessan- 
te. non tanto per la tecnica del gioco, 
comunque variato quel tanto che basta a 
mettervi in difficoltà anche al livello 1. 
quanto per l'interessante ricostruzione di 
varie epoche storiche: noi abbiamo pas- 
sato abbastanza agevolmente la prima e 
seconda schermata, corrispondenti alle 
prime due guerre mondiali (a proposito: 
dell'età preistorica ed eventuali dinosauri 
neanche l'ombra, ma magari vengono 


dopo — è o no una macchina del tem- 
po?). realizzando comunque poche mi- 
gliaia di punti. In entrambi i casi si ha 
una vallata incastrata nei monti, su cui 
l'autoveicolo che guidate si muove da 
sinistra a destra, cercando di evitare, o 
meglio di colpire con il doppio cannonci- 
no che spara davanti ed in alto, i vari 
pericoli: le bombe lanciate dagli aerei con 
traiettoria parabolica (se le colpite pren- 
dete 500 punti) e le picchiate degli stessi 
aerei, che se colpiti una volta cadono 
come sassi — e spesso su di voi! — e se 
colpiti due volte esplodono in aria senza 
conseguenze per la missione; sassi da ab- 
battere con uno o più colpi; buche da 
saltare. Per giungere alla fase 2 dovete 
percorrere IO miglia in queste condizioni, 
nel qual caso ottenete un bonus in punti 
proporzionale al tempo risparmiato e u- 
na vita in più. La struttura del secondo 
pannello è identica a quella del primo, 
ma cambiano i disegni degli aereoplani e 
dei pericoli in generale. 

La tecnica grafica è interessante: lo 
sfondo montagnoso è fisso, mentre una 
fascia centrale — che rappresenta le im- 


mediate vicinanze della strada da voi per- 
corsa — si muove da sinistra a destra 
punto per punto (scroll laterale parziale), 
cosi come fa la vostra automobile. Non è 
previsto il controllo da tastiera, quindi 
avrete bisogno di un joystick. Le possibi- 
lità sonore del 64 sono usate quasi esclu- 
sivamente per generare una serie di ru- 
mori di sfondo (caduta bombe, moto, 
auto, etc.) e di controllo (un suono acuto 
ad ogni miglio percorso) che non per al- 
lietare il travaglio del giocatore. 

La battaglia nel tempo può essere gio- 
cata da due contendenti, e a due diversi 
livelli di gioco; è fornita una tabellina con 
i punteggi maggiori della giornata. Il 
programmatore è Ken Grant; la Anirog 
ha venduto i diritti per USA e Canada 
alla Advantage. con sede nel secondo 
paese. 

L.S. 




MCmicrocomputer n. 38 - febbraio 1985 


37 




Senza dover inventare nulla di clamo- 
roso, una nuova moda si sta diffondendo 
nei giochi per home computer; l'abbelli- 
mento degli scenari, storicamente scarni 
ed essenziali. La struttura rimane invece 
la stessa: avversari dalle forme strava- 
ganti. per di più forzati a muoversi sul 
piano frontale rispetto all'osservatore, vi 
ostacolano a più riprese, cercando di di- 
struggervi. Certo, anche se sullo sfondo 
abbiamo le piramidi le difficoltà non au- 
mentano, ma forse ci si abitua in un tem- 
po minore del solito. 

Phase 4 è la solita difesa del pianeta dai 
cattivi Visitors con la lingua da serpente 
(bleehl), ma rispetto alla tradizione offre 
un caricamento veloce, la grafica un mi- 
nimo curata di cui sopra ed anche le op- 
portune possibilità di gioco per uno o 
due difensori del genere umano (oh, gli 
intrepidi eroi!), che dopo averci salvato 
vanno all’attacco nello spazio, attraver- 
sano le difese della città nemica e final- 
mente distruggono l'intera città degli av- 
versari, che cosi non nuoceranno più 
(molto pittoresco!). La logica del gioco 
prevede l'eliminazione di un certo nume- 
ro di nemici nella stessa schermata; una 


ve cercando di abbattere le astronavi ne- 
miche, che giungono in senso opposto, e 
di evitare i loro missili. 

Quello che più ci ha delusi è stata tutta- 
via la mancanza di cura nella realizzazio- 
ne del programma, che si evince chiara- 
mente già dai titoli di testa, che risultano 
sfalsati. 

Il gioco in sé è abbastanza noioso, 
principalmente per la carenza di varianti, 
dato che la velocità generale é più che 
buona; anche la grafica non è da buttare, 
vista la classe del programma, con i vari 
oggetti che si muovono pixel per pixel. 

Vista la semplicità dei comandi il pro- 
grammatore non ha ritenuto opportuno 
prevedere il collegamento di qualche in- 
terfaccia per joystick; le istruzioni sono 
in cinque lingue tra le quali fortunata- 
mente anche l'italiano. MB. 


Produttore: 

Master ironie. 

Via Stnurenghi 31. 21100 Varese. 



volta abbattuti si ricomincia da capo. La 
fase 1 prevede un ambiente di tipo egizia- 
no, in cui bisogna abbattere una dozzina 
di nemici, impresa questa non troppo dif- 
ficile. La fase 2 è in pratica uno space 
invaders a geometria variabile: gli avver- 
sari vagano in gruppi di due o tre. e voi 
dovete colpirli senza scappare, poiché i 
vostri colpi seguono i vostri movimenti, e 
quindi se vi scansate mancate il centro. 
La fase 3 è sempre di tipo spaziale, ma un 
po' più complicata della seconda: tra le 
altre difficoltà aggiuntive c’é che alcuni 
dei proiettili nemici vi inseguono, quindi 
fate attenzione. Alla fase 4 non ci siamo 
ancora arrivati... 

Realizzato dal solito Mark McKec, 
Phase 4 é controllato da joystick, ed è 
predisposto per uno o due giocatori: a 
nostro parere si tratta di una spruzzata di 
varietà su un gioco tradizionale. 

L.S. 


SlTtThlrgan'.TréLn 
lame ostare PR1 SBH. GB 



Anche se il prezzo di vendita è incredi- 
bilmente contenuto, dobbiamo confessa- 
re che ci aspettavamo di più da questo 
Viper III. 

La trama non è molto originale e con- 
siste nel comandare una piccola astrona- 



38 


MCmicrocomputer n. 38 - febbraio 1985 




w 



Se si dovesse giudicare un gioco dalla 
grafica, allora questo Grabber sarebbe 
tranquillamente scartato. Per fortuna 
cosi non è. e quindi possiamo riferirvi di 
esserci divertiti nel giocarci. Grab vuol 
dire arraffare; in questo caso forse è me- 
glio "prendere in fretta", come compren- 
derete dal prosieguo dell'articolo. 

Il gioco si compone di due piccoli labi- 
rinti. come potete vedere in fotografia, 
che vanno affrontati contemporanea- 
mente. Pur giocando in una soia stanza 
per volta, infatti, potete trasferirvi dall'u- 
na all'altra premendo il tasto di fuoco del 
joystick (che comunque non è obbligato- 
rio). In ogni vertice delle due stanze c'è 
un osso, per un totale di otto: questi van- 
no ricondotti in altrettante celle poste al 
centro di ognuna delle stanze. 11 solito 
nemico, che se vi prende vi uccide, è un 
altro mostriciattolo simile a voi. per di 
più invincibile. A lui si aggiunge un male- 
detto intrigante, che si prende il compito 
di disfare il vostro lavoro, spargendo o- 
vunque gli ossi raccolti: ma. a differenza 
del primo, questo può essere (momenta- 
neamente) sconfitto se avete ingerito una 
delle quattro pillole gialle a disposizione; 
per ricordarvi fino a quando ne dura l'ef- 


fetto, le vostre gambe diventano momen- 
taneamente bianche. Il gioco può riparti- 
re direttamente premendo FI, mentre 
viene momentaneamente fermato dal 

Avete 4 vite, che si incrementano di 1 
sia se raggiungete i 20000 punti che se 
passate il livello; ogni livello, per la cro- 
naca. è composto di 10 tavole. Il carica- 
mento avviene tramite un loader in Ba- 
sic, che rimane in macchina anche duran- 
te il gioco, e si cura anche di gestire parte 
del programma, che comunque è per la 
maggior parte in linguaggio macchina: 
può essere assai istruttivo osservarne la 
struttura. 

La maggior particolarità del gioco è la 
complessità apparentemente non eleva- 
ta: grande è quindi l'attenzione che dov- 
rete riporre nel controllare contempora- 
neamente due schermi (anche se di di- 
mensioni ridotte) ognuno con i suoi peri- 
coli. e non uno solo. Un consiglio che 
possiamo darvi è di pensare molto alle 
varie situazioni, eventualmente fruendo 
della possibilità di fermare l'esecuzione 
premendo il succitato tasto Return. Utile 
l'opportunità di usare uno o due joystick 
con due giocatori; se il joystick è uno solo 
va messo nella porta numero 2. 

L.S. 





Il titolo completo di questa avventura, 
che richiama subito alla mente immagini 
di cavalieri, maghi e damigelle, è The 
Quest for thè Holy Grail, ovverossia La 
ricerca del Sacro Calice. 

Sembra una cosa seria, ma il sottotito- 
lo, che la definisce come la prima avven- 
tura comica grafica, fa sorgere dei dubbi 
sull'eroicità dell'impresa che aspetta l'av- 
venturoso giocatore. Dubbi peraltro giu- 



stificati; The Quest ecc. ccc. è stata ispira- 
la dal film "Monthy Python and thè Ho- 
ly Grail" e chi conosce Monthy Python 
sa già che lo aspetta un umorismo che 
non ammette vie di mezzo: o fa sbellicare 
dalle risate oppure lascia totalmente in- 
differenti. Questione di gusti... 

In ogni caso questa avventura è adatta 
soltanto a chi lo conosce davvero bene: i 
doppi sensi ed i giochi di parole del testo 
rischiano altrimenti di far capire ben po- 
co della trama. A prescindere da essa, 
comunque, il programma è abbastanza 
ben fatto, con un vocabolario sufficiente- 
mente esteso ed una grafica curata. 

Se avete un sense ofhumor molto ela- 
stico e non vi spaventa trovare fianco a 
fianco nella stessa avventura Re Artù ed 
un (lic parigino, Holy Grail è un pro- 
gramma da provare. M.B. 


PrnduKorc: 



MCmìcrocompuler n. 38 - febbraio 1985 


39 






Non è un'avventura, non è un gioco di 
strategia; piuttosto una combinazione di 
entrambi, ed anche qualcosa di più. 

Eccone la trama: il giorno del Solstizio 
è sempre più vicino, e sta per avere inizio 
la guerra tra Doomdark, il malvagio ti- 
ranno della terra di Midnight. ed i Liberi, 
guidati da Luxor, il Principe della Luna. 
Midnight. un tempo fertile e prosperosa, 
ora è trasformata in una landa ghiaccia- 
ta. poiché è dal freddo che Doomdark 
preleva i suoi poteri. 

Il giocatore prende il ruolo di Luxor; 
grazie al magico Anello della Luna. Lu- 
xor può controllare le azioni di tutti colo- 
ro che gli sono fedeli e vedere attraverso i 
loro occhi, ovunque si trovino; all'inizio i 
caratteri che Luxor controlla sono Mor- 
kin. il figlio. Rorthron. II Saggio, e l'ami- 
co Corleth. Proseguendo nel gioco Luxor 
dovrà formare le sue armate guadagnan- 
do altri abitatori di Midnight alla pro- 
pria causa. 

Ci sono due modi di sconfiggere 
Doomdark. Il primo consiste nel portare 
le armate fino alla Piana della Dispera- 
zione e cingere d'assedio la cittadella di 
Ushgarak, quartier generale del tiranno; 
il secondo è affidato al tentativo, da parte 
di Morkin. di raggiungere la torre del 


Destino per distruggere la corona di 
ghiaccio, sorgente dei poteri di Doom- 
dark. 

Nel primo caso il protagonista princi- 
pale è Luxor, ed il gioco risulta più simile 
ad un war game, mentre nel secondo caso 
si ha una vera e propria avventura basata 
sulle azioni di Morkin. 

La strategia migliore c però quella di 
seguire entrambe le strade, anche se in 
questo modo l'azione procede meno ra- 
pidamente. 

Vediamo come si svolge il gioco. II 
giocatore deve comandare Luxor ed i ca- 
ratteri da lui controllali in modo che le 
azioni di tutti permettano di raggiungere 
la vittoria finale. Ogni carattere può 
viaggiare liberamente per la terra di Mid- 
night; di giorno agiscono Luxor cd i suoi 
uomini, mentre di notte ha via libera 
Doomdark. Nel corso del gioco capita 
frequentemente di dover combattere; o- 
gni tanto si tratta di veloci scaramucce 
fra bande o di duelli singoli, ma quando 
sono coinvolte due opposte armate ci 
vuole parecchio tempo perché si conclu- 
da la battaglia. Lo spostamento dei vari 
caratteri e la scelta delle azioni avviene 
tramite la pressione di tasti singoli; allo 
scopo nella confezione é fornita una ma- 


scherina mnemonica da sovrapporre alla 
tastiera dello Spectrum. 

Sullo schermo appare quello che vede 
il carattere selezionato, nella direzione in 
cui è rivolto. Grazie all'astuta combina- 
zione di alcuni elementi fondamentali, in 
totale si possono ottenere più di 32.000 
schermate in alta risoluzione; un vero e 
proprio record. 

Assieme al programma viene dato un 
completo manualetto di istruzioni, che 
contiene anche un simpatico racconto 
della passata storia di Midnight. Sulla 
sua copertina é disegnala una pianta, del 
regno di Doomdark, necessariamente 
sommaria per la vastità della zona, ma 
comunque molto utile per non vagare 
totalmente alla cieca. 

Per gli amanti delle avventure e dei 
libri del genere Fanlasy si tratta di un 
gioco da non perdere. 

MB. 


Produttore: 

Ber and - Farndon Rumi 
Market Harhorough. Leics. 1GB) 
Distributore per l'Italia: 

LAGO snc - Fiale Massenzio Masia 79 
;;ino Coma ■ Te I WS I) SS2276 



40 


MCmicrocomputer n. 38 - febbraio 1985 






Il nome vuole dire "bandiera a scac- 
chi". ed é facile intuire che si tratta della 
simulazione di una corsa in un bolide di 
formula 1. Di fronte ad ogni gioco di 
questo tipo è inevitabile il voler tentare 
un confronto con il famosissimo Pole Po- 
sition Atari, recensito sul numero di giu- 
gno '84 in versione per il C64 e da poco 
disponibile anche per lo Spectrum. 

Vi avvertiamo subito che tra i due pro- 
grammi vi è una profonda differenza: 
Chequered Flag è più una simulazione, 
mentre Pole Position si avvicina mag- 
giormente ad un gioco. Nel programma 
della Psion infatti si nota all'istante che 
sullo schermo non si vede la vettura in 
pista, come nel caso di Pole. ma si ha 
soltanto la visione che si avrebbe stando 
realmente seduti al posto di guida, e cioè 
il cruscotto ed il muso anteriore. 

Proprio questo tentativo di avvicinarsi 
il più possibile alla realtà ha portato ad 
escludere la presenza di altre macchine 
sulla pista (i sorpassi in Pole Position 
sono decisamente troppi); non si gareg- 
gia. quindi, ma si tenta solo di ottenere il 
record della pista. 

Il programma permette un notevole 
numero di scelte iniziali. Le piste fra le 


quali scegliere sono molte, alcune famo- 
sissime. come Monza e Montecarlo, altre 
inventate li per li e battezzate con nomi 
abbastanza ridicoli: Micro Drive (!). Par- 
co Psion. Sabbie di Saturno... 

Tre sono le macchine a disposizione, 
ognuna dalle differenti caratteristiche. 
La Me Faster Special farà inorridire pa- 
recchi. essendo dotata di cambio auto- 
matico. ma è l'ideale per impratichirsi 
nella guida: ci sono poi la Psion Pegasus e 
la potentissima Feretti Turbo. 

Lo scenario è molto scarno, con un 
paesaggio ridottissimo e dei box rappre- 
sentati da semplici linee tracciate sui ter- 
reno, ma la scelta è stata sicuramente 
necessaria per non far scendere troppo la 
velocità. Le piste, in compenso, sono di- 
gitalizzate discretamente bene, con tanto 
di salite e discese. 

L'unica vera critica che si può muove- 
re alla grafica riguarda il muso della vet- 
tura: le ruote non sterzano in curva, e ciò 
disturba non poco, anche perchè dà fasti- 
dio essere obbligati a guardare il volante 
per vedere di quanto è girato. I comandi 
sono decisamente troppi, con addirittura 
quattro tasti per sterzare lentamente o 
velocemente nelle due direzioni. 

Anche se le istruzioni non lo dicono, al 
posto della tastiera, adatta più alla dea 
Kali che ad un povero umano, si può 
usare un joystick collegato tramite l'in- 
terfaccia Sinclair. M.B. 


Ecco un ennesimo discendente di Ma- 
nie Miner; rispetto alforiginale questo 
Son of Blagger si distingue per avere una 
zona di gioco unica, invece che divisa in 
schermate successive. 

La cosa, dobbiamo dire, non costitui- 
sce affatto un miglioramento, perché lo 
scroll del fondo, necessario poiché l'area 
utile è molto superiore a quella del video. 



avviene tutto in un botto quando il pro- 
tagonista del gioco cammina oltre la me- 
tà dello schermo, con un effetto abba- 
stanza fastidioso a vedersi. 

La trama è quella solita: raccogliere 
tutte le chiavi presenti evitando di defun- 
gere prematuramente andando a sbattere 
contro qualche ostacolo letale. 

La grafica sfrutta a fondo i colori, ma 
risulta spesso un po' confusa, rimanendo 
comunque nella media; molto brutto il 
pupazzetto protagonista, che non ispira 
la minima simpatia. 

La musica che accompagna l'azione è 
il famoso Bolero di Ravel; peccato solo 
che per il programmatore il tempo non 
abbia avuto nessuna importanza: la velo- 
cità di esecuzione sembra assolutamente 
casuale, e rallenta o accelera in maniera 
abbastanza poco piacevole. M.B. 


Produttore: 

Alligala Software Ltd. 

I Orange Street . Sheffield SI 4DW. GB 


MCmicrocomputer n. 38 - febbraio 1985 


41 






capire esattamenle qual è la verticale sul- 
la quale si trova la propria astronave, 
anche tenendo presente il riferimento 
fornito dall'ombra; ciò provoca alcuni 
problemi di mira, e capita spesso di vede- 
re i proiettili passare accanto al bersaglio 
che si credeva perfettamente centrato. 

Dal punto di vista tecnico il gioco è 
mollo ben realizzato: la difficoltà in par- 
ticolare ci sembra ben dosata, tale da 
impegnare a fondo ma non fino al punto 
di far venire la voglia di passare a qualco- 
sa di meno impossibile: i livelli sono 
quattro, differenziati principalmente 
dalla velocità di scroll dell'asteroide. 

La grafica è ottima e buoni sono anche 
gli effetti sonori, francamente però siamo 
convinti che i sistemi MSX possano dare 
ancora qualcosa di più da questi due 
punti di vista. 

Si può usare sia il joystick che la tastie- 
ra: in questo secondo caso si pilota con i 
tasti di movimento del cursore e si spara 
con la barra spaziatrice. 

Zaxxon è fornito su cassetta; una scel- 
ta che approviamo in quanto permette di 
contenere il prezzo di vendita. Il pro- 
gramma si trova registrato su entrambe 
le facciate, a due diverse velocità. 1200 e 
2400 baud. 

MB. 


Gli Zaxxon sono dei temibili robot, 
che hanno conquistato una cintura di a- 
steroidi importantissima dal punto di vi- 
sta strategico. Al giocatore spetta il com- 
pito di distruggere le installazioni degli 
Zaxxon. sorvolando gli asteroidi con un 
potente caccia spaziale; una missione pe- 
ricolosa. perché le difese del nemico sono 
oltremodo difficili da superare. 

L'astronave a disposizione ha una ri- 
serva di munizioni praticamente illimita- 
ta: il carburante, al contrario, finisce 
piuttosto presto e bisogna rifornirsi spes- 
so. distruggendo i serbatoi presenti sugli 
asteroidi (strano modo di fare un pie- 
no...) 

La zona di gioco viene vista tridimen- 
sionalmente; l'effetto del movimento vie- 
ne ottenuto facendo scrollare l'asteroide 
(che, per la verità, assomiglia stranamen- 
te ad una autostrada) verso sinistra, men- 
tre il caccia rimane fermo. 

All'inizio è un po' difficile riuscire a 


Ecco la vostra possibilità di diventare 
il detective più famoso del mondo: un 
informatore vi annuncia che una banda 
sta preparando il più clamoroso furto del 
secolo: i gioielli della Corona! Alla vostra 
abilità é affidalo il compito di salvare i 
I gioielli c di assicurare i malfattori alla 
giustizia. 

Nonostante sia quasi interamente in 
| Basic. The Great Detective è un'avventu- 
a divertente: niente di particolarmente 
[ sofisticato, d'accordo, ma si lascia gioca- 
n piacere. 


Il gioco si svolge guidato dal compu- 
ter. che descrive l'azione e propone una 
serie di alternative fra le quali il giocatore 
deve scegliere. 

La grafica svolge una parte importante 
e qua e là vi é anche qualche timido ac- 
cenno di animazione; purtroppo non 
sempre il programmatore ha indovinato i 
colori delle scene, che talvolta risultano 
non troppo chiare. 

La logica del programma è piuttosto 
interessante, con un unico vero difetto: si 
muore troppo facilmente. Va bene che 
fare l'investigatore comporta molti peri- 
coli. ma sentirsi informare che si è appe- 
na stati puniti con la morte per non essere 
riusciti a decifrare un messaggio ci pare 
un tantino eccessivo! 

MB. 


42 


MCmicrocomputer n. 38 - febbraio 1985 




Sony è lieta di presentare la prima donna 
che ha perso 5 chili col computer. 


Brava mamma! 5 chili in 5 settima- 
ne: adesso hai quasi le misure di 
Miss Italia. E in 5 settimane hai an- 
che imparato a usare il computer! 

HOME COMPUTER 

HIT BIT 

Il nuovo Hit-Bit Sony è veramente 
facile. Quasi come scrivere a mac- 
china. Hit-Bit Sony è un vero com- 
puter "familiare". adatto per tutta 
la famiglia. La mamma lo usa per 
la dieta e per la dispensa di casa; 
papà per i conti del bilancio, per la 
denuncia dei redditi e per la sua 
"collezione" di vini. Barbara per 
gli oroscopi, per i bioritmi e per 
tenere in ordine i dischi. Andrea 
per studiare (ci sono programmi 
di italiano, matematica, geome- 
tria, storia, geografia, ecc.), per 



MSX* è la sigla 
| W ' 4M del nuovo stan- 

dard internazio- 
nale unificato, 
adottato dalle più importanti mar- 
che del mondo di Home Compu- 
ter (Sony in testa). La caratteri- 
stica rivoluzionaria dell'MSX è la 
compatibilità: per la prima volta 
nella storia degli home computer, 
tante marche diverse parlano la 
stessa lingua, rendendocosl pos- 
sibile l’interscambio dei program- 
mi e delle unità periferiche, (più o 
meno quello che già succede coi 
componenti Hi-Fi). 

O MSX è un marchio registrato delio Microsoft Co 


suonare le sue canzoni e per un 
sacco di videogiochi. 

Insomma, con Hit-Bit Sony in po- 
che settimane una normalissima 
famiglia si è trasformata in un'au- 
tentica "famiglia al computer". 


■f 


Meo Floppy Ps> Dolo Cato 


Hit-Bit Sony, il primo computer "familiare”. 




IL MUOVO 

Oltre al connettore di espansione, ed al connettore per collegare i Microdrive supplementari, il 


Pulsarne di reset 

Permette di cancellare il contenuto della memoria 
del computer senza scollegare l'alimentazione 

^ " Connettore di estensione Microdrive 



Interconnessione in reti locali: QLAN 
Un collegamento per comunicazioni ad alta velocita 
per mtercollegare lino a 64 computer Sinclair QL 
oppure ZX Spectrum, I dati vengono trasferiti lungo 
la rete ad una velocità di 1 00 kbaud, ed i protocolli 
garantiscono che le stazioni interessate siano pronte 
prima di inviare i dati. I dati possono essere anche 
distribuiti, tramite la rete, a tutti i computer in 


Versione Inglese 


Porta monitor 

Il Sinclair QL permette una risoluzione molto elevata 
quando e collegato ad un monitor. Sono disponibili 
due modi: 512 x 256 pixel, con quattro colori • 
nero, bianco, verde, rosso (oppure 4 gradazioni di 
grigio); 256 x 256 pixel, con 8 colori (oppure 8 
sfumature di grigio; e lampeggiamento. 

Il numero dei caratteri sullo schermo è determi- 
nato dal numero dei pixel, ma è disponibile una 
scelta di set di caratteri. Il formato normale e di 85 
colonne per 25 righe. 

Possono essere usati sia monitori a colon (RGB) 
che monocromatici. 


Porta TV 

I modi di visualizzazione su TV sono gli stessi di quelli 
per il monitor, ma il formato normale è di 40.60 
*” colonne, a -seconda del software. 

Possono essere usati sia televisori a colori che 
B/N. 


PACCHETTI SOFTWARE IN DOTAZIONE 



QL-QUILL 
Elaborazione testi 



QL-ABACUS 

Spreadsheet 



QL-ARCHIVE 

Gestione archivio dati - database 






SINCLAIR QL 

Sinclair QL ha altre 9 porte per periferiche, chiaramente configurate sul pannello posteriore. 



Connettore di espansione per la scheda di memoria 
a 0,5 Mbyte e periferiche di prossima presenta- 


Joystlck 

E previsto il collegamento di uno o due |oystick per 
giochi, oppure per controllare il cursore. Il controllo 
del cursore può anche essere effettuato mediante 
quattro tasti separati sulla tastiera. 


ORAC’ 


E’ 


QL - EASEL 
Grafica commerciale 


DISTRIBUTORE ESCLUSIVO PER L’ITALIA 


Per ulteriori informazioni scrivere a: 

REBIT Computer - CASELLA POSTALE 10488 - MI 


m m 






Commodore C 16 

di Tommaso Pantuso 


Finalmente arriva l'atteso Commodore 
16 di cui. come molti ricorderanno, è appar- 
sa un anteprima sul numero 33 ( settembre I . 

Questa macchina fa apertamente tesoro 
dell'esperienza acquisita dalla Commodore 
nell 'analisi delle reali esigenze degli utenti di 
/tome computer: ciò ha portato, come avrete 
modo di osservare leggendo la prova, all'in- 
troduzione di quegli elementi che mancava- 
no sui modelli precedenti e che non consenti- 
vano uno sfruttamento intensivo di strutture 
fondamentali ed una sufficiente versatilità. 
Sono quindi state introdotte le opportune 
varianti a! Basic : basti pensare alla presenza 
di un set di istruzioni per la grafica. Usuano, 
gli errori e l 'editor, oltre a quella de I Moni- 
tor che permette di lavorare agevolmente in 
LM . a I Basic più evoluto ed alla possibilità 
di gestire direttamente drive doppi. 

Per motivi attualmente oscuri, ma che la 
politica della Commodore americana — e 
quindi, di riflesso, quella italiana — svele- 
ranno in seguilo, il C 16 parte con soli !2K di 
memoria utente che non consentono di gesti- 
re contemporaneamente grosse quantità di 
dati. Un altro fattore apparentemente limi- 
tali ivi è la solita dipendenza dalle periferiche 
della casa. Sono presenti ancora i connettori 
per stampante seriale Commodore e per dri- 
ve che utilizzano lo stesso protocollo di base: 
la casa pare intenzionata ad immettere sul 
mercato una serie di periferiche di qualità 
! stampanti grafiche e a colori di vario tipo, 
dischi, eie.) a prezzi mollo accessibili. Ve- 
diamo quindi se per compattare tutte le pos- 


sibilità offerte e per rimanere concorrenziali 
sul prezzo si è dovuto rinunciare a qualcosa. 


Come si presenta 

La forma e le dimensioni sono le stesse 
dei suoi due predecessori Vie 20 e C 64, cioè 
circa 40 x 20 x 7 cm, mentre il colore è di 
gran lunga più scuro, diciamo grigio scu- 
rissimo (quasi nero). Anche qui nella parte 
superiore destra troviamo il Led rosso che 
funge da spia di accensione e sulla sinistra 
la solita targhetta, questa volta con la scrit- 
ta Commodore 16. Il fianco destro della 
macchina ospita due ingressi per joystick 
che a prima vista suscitano qualche per- 
plessità a causa delle loro dimensioni al- 
quanto ridotte: sono delle piccole prese 
circolari ad otto poli simili come forma a 
degli ingressi Din standard, ma di diame- 
tro minore (circa IO mm). Affiancato a tali 


prese troviamo un elemento nuovo che 
sopperisce ad una mancanza dei modelli 20 
e 64: il pulsantino del Reset, il quale ripri- 
stina il sistema in caso di blocco e lo riporta 
nelle condizioni iniziali riposizionando i 
puntatori (compresi quelli del Basic) e fa- 
cendo riapparire la scritta "Commodore 
Basic V3.5 12277 Bytes Frec" (una foto del 
manuale riportava 6067 1 Bytes Free!). Sul- 
la destra del pulsantino troviamo infine 
l’interruttore, la presa di alimentazione, 
anch'essa di dimensioni e forma diverse da 
quelle dei modelli precedenti. 

Anche sul lato posteriore le cose cambia- 
no un po': non troviamo più una User Port 
a disposizione dell’utente, quindi tutti i se- 
gnali utili andranno prelevati dal Bus ri- 
condotto sulla Porta di espansione, questa 
volta a 50 poli (6 in più rispetto a quella del 
Vie e del C 64) e alloggiata, come di con- 
sueto, sulla sinistra. Proseguendo da sini- 
stra verso destra troviamo l’uscita Rf Tv 


46 


MCmicrocomputer n. 38 - febbraio 1985 



proveniente da un modulatore interno, so- 
luzione già sfruttata sul 64, l'uscita Video 
per un eventuale Monitor, la presa seriale 
per il collegamento di periferiche quali 
stampanti e floppy drive ed infine l'uscita 
per il registratore a cassette, anch'essa di- 
versa rispetto alle precedenti versioni, per 
la quale valgono le stesse considerazioni 
latte per gli ingressi joystick. 

Sul manuale in dotazione della macchi- 
na non troviamo informazioni sulla descri- 
zione delle piedinature dei connettori, per- 
ciò per maggiori approfondimenti, dob- 
biamo attendere una letteratura più speci- 
fica in materia che prevediamo non si farà 
attendere molto vista la qualità della mac- 
china. 

La tastiera e le nuove funzioni 

La tastiera, di buona qualità, è una 
QWERTY ed i tasti sono sempre 61 (que- 
sta volta grigio chiarissimo) a cui si aggiun- 
gono la barra spaziatrice ed i soliti quattro 
tasti funzione. Quasi tutti sono duplicati, 
triplicati o addirittura quadruplicati tra- 
mite lo Shift o il tasto Commodore in bas- 
so a sinistra o per mezzo del Control. 

Le prime differenze di rilievo tra questo 
ed i modelli precedenti possono essere col- 
te da un rapido esame dei contrassegni sui 
tasti. Il primo tasto che cambia posizione è 
la freccetta orizzontale (che era in alto a 
sinistra) al cui posto troviamo il tasto ESC 
(Escape). noto agli utenti del Basic Micro- 
soft e presente già su molti computer della 
stessa categoria. Sulle funzioni del tasto in 
questione avremo modo di parlare tra bre- 

1 tasti utili a muovere il cursore sullo 
schermo non sono più due. duplicati dallo 
Shift. ma diventano quattro e cambiano 
posizione portandosi dall'ultima alla pri- 
ma fila, spostati verso destra; su di essi 
sono disegnate delle frecce che indicano il 
verso dello spostamento. La prima vera 
novità viene affidata a due dei tasti della 
fila più in basso, sulla parte anteriore dei 
quali troviamo scritto rispettivamente 
FLASH ON e FLASH OFF: premendo 
nel modo adeguato questi tasti insieme al 
CTRL (Control) potremo programmare 
delle scritte lampeggianti con la stessa fre- 
quenza del cursore, cosa molto utile per 
evidenziare operazioni importanti o mes- 
saggi di errore. 

I tasti da I a 8, se premuti in modo 
diretto o tra virgolette in un programma, 
permettono di ottenere caratteri in ben se- 
dici colori e sono alcuni di quei tasti dal 
quadruplice effetto a cui accennavamo po- 



pressione contemporanea dello Shift e del 
Run/Stop: se prima si otteneva di caricare 
e di mandare in Autorun un programma 
registrato su cassetta, ora si ottiene lo stes- 
so effetto, solo che il programma viene 
caricato da disco. 





Particolare attenzione meritano i tasti 
funzione che diventano programmabili 
dall'utente, cosa che in precedenza si otte- 
neva aggiungendo ai micro della Commo- 
dore delle Eprom o dei tool su supporto 
magnetico i quali implementavano anche 
nuovi comandi: vedremo, nell'esame del 
Basic, che tutti i comandi che una volta 
venivano aggiunti solo in un secondo tem- 
po ed in maniera spesso non troppo como- 
da sono ora presenti, insieme a molti altri 
che derivano dalla Microsoft, nel nuovo 
set proposto dalla casa. 

Ritornando ai 'tasti funzione', oltre a 
poter loro assegnare delle funzioni specifi- 
che si può fruire di quelle predefinite (che 
sono 8) messe a disposizione dalla macchi- 
na all'accensione, e delle quali si può otte- 
nere subito l'elenco scrivendo KEY segui- 




isaaaaaaaaaaaaaaa 
ooaooooaoooQoen 
eeooooooaooBBQ cbb 
ooaooooaoBBBaiQQ 



47 


MCmicrocomputer n. 38 - febbraio 1985 




to dalla pressione di Return. Esse sono: 
fi GRAPHIC 
(2 DLOAD + CHR$(34) 

13 DIRECTORY + CHR$(13) 
f4SCNCLR + CHR$(13) 
fS DSAVE + CHR$(34) 
f6 RUN + CHR$(13) 
f7 LIST + CHR$(13) 
f8 HELP + CHR$(13) 

Con GRAPHIC (seguito da uno o più 
numeri) si ottiene di entrare in uno dei 
modi grafici disponibili. DLOAD e DSA- 
VE seguiti dalle virgolette. CH R$(34), e da 
una stringa che rappresenta il nome, dan- 
no luogo al caricamento o al salvataggio di 
un programma su disco mentre con (3 è 
possibile richiamare la lista completa dei 
file alterando solo il contenuto dello scher- 
mo e quindi lasciando immutato il pro- 
gramma in memoria (se ben ricordate, con 
LOAD “$".8 si otteneva la perdita del pro- 
gramma in memoria) e con f4 si ottiene 
invece la cancellazione dello schermo. La 
funzione di f6 ed 17 è evidente. Una nota di 
riguardo merita il tasto f8 che ora non si 
chiama più cosi, ma HELP. Se in un pro- 
gramma viene riscontrato un errore di sin- 
tassi da parte dell'interprete, premendo 
HELP viene evidenziata, lampeggiante 
sullo schermo, la linea incriminata e quindi 
si può procedere alla correzione posizio- 
nando il cursore in corrispondenza del ca- 
rattere da modificare (a proposito di corre- 
zioni, date un'occhiata, più avanti, alle 


nuove operazioni che si possono svolgere 
mediante l'utilizzo del tasto ESC!). 

Per cambiare la funzione di uno dei tasti 
suddetti si agisce molto semplicemente 
scrivendo: 

KEY n " nuova funzione " < Return > 
dove n rappresenta il numero del tasto da 
modificare. 

Il tasto ESC 


Ma le sorprese non sono ancora finite! 
Abbiamo accennato alla presenza del tasto 
ESC e ci siamo riproposti di parlarne 
più approfonditamente. Rimbocchiamoci 
quindi le maniche ed elenchiamo qualcuno 
tra i più importanti compiti svolti dall'E- 
scape. 

Il primo che ci viene in mente è quello 
svolto da ESC R che riduce le colonne 
dello schermo a 38, e ciò può tornare utile 
quando si ha a che fare con teleschermi che 
aberrano l’immagine sui bordi. Per tornare 
nelle normali condizioni, cioè a 40 colonne 
(e 25 righe), basta premere due volte il 
tasto CLEAR/HOME che ora porta la 
scritta stampigliata per intero. Vi facciamo 
notare che va premuto prima ESC, poi 
rilasciato, e solo in seguito si può premere 
R. Un’altra cosa che vogliamo evidenziare 
è che in questa macchina, all'accensione, è 
già presente l'autoripetizione dei tasti e 
quindi se li teniamo premuti per più tempo 


del necessario si otterrà la ripetizione sullo 
schermo del carattere da essi rappresenta- 
to. Con ESC B ed ESC T possiamo selezio- 
nare una finestra sullo schermo e da quel 
momento in poi il cursore e le scritte po- 
tranno scorrere in essa come in una scato- 
la, mentre con ESC M è come se ottenessi- 
mo una finestra di 40 x 25 in cui è disabili- 
tato lo scroll verso l'alto; per riattivarlo 
basterà premere ESC L. 

Per quanto riguarda l'editor abbiamo 
dei comandi molto interessanti, tipo ESC J 
ed ESC K che portano il cursore rispettiva- 
mente all'inizio ed alla fine della linea su 
cui esso si trova in quel momento, ESC I 
che serve per inserire uno spazio tra due 
righe ed è utilissimo per aggiungere una 
nuova linea ad un certo punto di un listato. 
ESC A (escluso da ESC C) che è identica 
alla funzione di inserimento nei wordpro- 
cessor: da un certo punto in poi in una 
frase possono essere inserite delle parole 
senza creare preventivamente uno spazio, 
in quanto tutto ciò che si trova a destra del 
cursore viene spostato automaticamente 
nel corso dell'aggiunta. Con ESC D potre- 
mo cancellare la linea su cui abbiamo posi- 
zionato il cursore, con ESC P la parte che si 
trova prima di esso e con ESC Q quella che 
si trova dopo. Ancora degno di nota è il 
fatto che si possa ottenere lo scroll di una 
linea verso il basso o verso l'alto con ESC W 
ed ESC V. 



MCmicrocomputer n. 38 - febbraio 1985 





Anche il tasto CONTROL abilita dei 
comportamenti particolari se premuto in- 
sieme ad alcune lettere, come il fermare 
l’elaborazione o lo scorrere di un listato, 
porre le scritte in campo inverso ed altro, 
ma su esso per il momento non riteniamo 
utili ulteriori precisazioni. 

Come si può notare da queste prime no- 
te. questa macchina possiede una potenza 
non indifferente se paragonata alle sorelle 
siglate Vie 20 e C 64, potenza che la pone su 
un piano di rilievo tale da portarla a con- 
correre anche con il C64. A ciò contribui- 
scono la presenza di una grafica in alta 
risoluzione (320 x 200) di buona qualità e 
di un Basic il cui set di istruzioni — assai 
più nutrito del solito — ne semplifica di 
molto l'uso. 

Il Basic 


La memoria disponibile per il program- 
ma Basic parte dalla locazione decimale 
4096 e si estende per 12 K. È possibile 
intercettare facilmente l'inizio e la fine di 
tale area analizzando il valore di due pun- 
tatori a 2 byte, contenuti rispettivamente 
nelle locazioni 43/44 e 55/56, con il coman- 
do PEEK: la fine del programma è invece 
indicata da un altro puntatore, sistemato 
nelle locazioni 45/46 decimali. 

Dopo questa brevissima nota introdutti- 
va, passiamo all'analisi dei nuovi elementi 
del set di istruzioni e comandi del Basic 
V3.5 utilizzato dalla Commodore, esclu- 
dendo per ora quelli relativi alla grafica ed 


al suono che analizzeremo più avanti. Co- 
minciamo con alcuni comandi che sono 
stati introdotti come aiuto alla program- 
mazione e al debug, i quali si vanno ad 
aggiungere ad alcune delle funzioni svolle 
a questo scopo dal tasto ESC. 

Il comando AUTO ci permette di otte- 
nere la numerazione automatica delle linee 
con passo scelto da noi, garantendo dei 
listati più ordinati oltre ad un risparmio di 
tempo. 

Con DELETE possiamo cancellare una 
o più linee in un programma e per la rinu- 
merazione con passo scelto useremo il co- 
mando RENUMBER. Di notevole impor- 
tanza per il debug risulta TRON (Trace 
On), disabilitato da TROFF (Trace off), 
grazie al quale, mentre il programma è in 
esecuzione, ci vengono mostrati sullo 


schermo, racchiusi tra parentesi quadre, i 
numeri delle linee eseguite ed in questo 
modo è più facile raggiungere la causa di 
una eventuale anomalia ed eliminarla. 

A proposito di errori, è bene accennare a 
TRAP, RÉSUMÉ, RÉSUMÉ NEXT, 
ERRS, ER. 

Le istruzioni TRAP e RÉSUMÉ per- 
mettono di indirizzare il programma in 
maniera calcolata in caso di errore, di cui il 
codice e il messaggio possono essere identi- 
ficati con ER e ERRS. evitando cosi che il 
sistema si arresti. Esse vanno a sostituire le 
usuali istruzioni di manipolazione del pro- 
gram counter (ON ERROR, ON BREAK 
e cosi via): per meglio mostrarne la sintassi 
e la potenza utilizziamo un apposito listati- 
no pubblicato altrove in questa prova. Si 
presti attenzione all'uso del RENUMBER 
quando è presente nel programma l'istru- 
zione TRAP seguita da un numero di linea, 
in quanto tale numero non viene cambiato. 

Si è rimediato ad una vecchia carenza 
introducendo l'istruzione di programma- 
zione strutturata IF THEN ELSE; insieme 
ad essa troviamo il DO LOOP WHILE, 
che permette di eseguire ripetutamente un 
blocco di istruzioni poste tra Do e Loop 
While finché un'assegnata condizione è ve- 
ra, ed il DO LOOP UNTIL per la quale 
può valere il discorso fatto per la preceden- 
te se sostituiamo alla parola "vera" la pa- 
rola "falsa", consentendo un ben maggiore 
controllo del flusso di istruzioni. 

Ad altre mancanze si rimedia con l'in- 
troduzione di PRINT USING. che per- 


mette la formattazione e l'arrotondamento 
di variabili in output, insieme alla quale si 
può impiegare PUDEF (Print Using Defi- 
nition, che si occupa della ridefinizione del 
modo di funzionamento della formattazio- 
ne), e di RESTORE n con cui é possibile 
indirizzare il puntatore del Data. 

Da come vanno le cose a questo punto é 
abbastanza logico supporre la presenza di 
nuovi comandi per il disk drive, ed infatti 
anche in questo caso rimaniamo tutt'altro 
che delusi. La prima novità è che possono 
essere gestiti sia Drive singoli che doppi e 
quindi non potevano mancare il BACKUP 
ed il COPY per la copia di dischi e file 
singoli. Chi non vuole impiegare i vecchi 
comandi Load e Save con tutto quello che 
segue può agevolmente usufruire di 
DLOAD e DSAVE. Questa volta, se vo- 



MCmicrocomputer n. 38 - febbraio 1985 



gliamo la lista dei programmi conservati su 
disco senza distruggere un eventuale pro- 
gramma in memoria, possiamo servirci di 
DIRECTORY (al postodi Load“$'\8) che 
modifica solo il contenuto dello schermo. 
Infine abbiamo HEADER che è un utile 
comando per la formattazione (semplice 
ed ultra veloce), e COLLECT che effettua 
il garbage collection del disco, operazione 
che riordina i file eliminando gli eventuali 
vuoti tra blocchi. 

Si tenga presente che molte delle istru- 
zioni e dei comandi descritti finora sono 
seguiti da parametri che* permettono loro 
di svolgere anche funzioni più complesse. 

Per quanto riguarda la matematica, non 
sono stati introdotti cambiamenti di rilie- 
vo rispetto al 64 ed il grado di precisione 
rimane sempre lo stesso, cioè nove o dieci 
caratteri numerici (a seconda che il punto 
decimale sia presente o meno) per la nor- 
male notazione, suddivisi tra parte intera e 
decimale, e trentottesima potenza di IO per 
un numero in notazione esponenziale posi- 
tiva. Troviamo invece qualche nuova fun- 
zione di carattere generale: oltre a quelle 
già viste abbiamo: HEXS e DEC per utili 
conversioni decimali-esadecimali e vice- 
versa. INSTR per l'intercettazione di pa- 
role. JOY per la lettura dei joystick. DSS 


che fornisce tutte le informazioni su un 
eventuale errore del disco ed ancora 
RCLR. RGR. RLUM. RDOT che resti- 
tuiscono il valore di alcuni parametri. 

Qualche parola va dedicata al program- 
ma di monitor inserito nella macchina. Es- 
so può essere usato anche come assem- 
blatore/disassemblatore. dotato di svariati 
comandi come: A per assemblare, D per 
disassemblare. M per il dump della memo- 
ria, X per tornare al Basic...; il programma 
è richiamabile con la parola riservata MO- 
NITOR. 

Schermo, grafica e suono 

Per il suono ce la caviamo abbastanza 
presto. La qualità non è molto dissimile da 
quella che si poteva ottenere con il Vie 20, 
ma purtroppo manca una voce rispetto a 
quel modello. Un vantaggio però c’è, e 
consiste nella presenza di comandi specia- 
lizzati come VOL per il controllo del volu- 
me e SOUND per ottenere la nota di cui 
possiamo controllare, sempre con la stessa 
istruzione, anche la durata e decidere se 
deve trattarsi di suono o di rumore bianco. 
Il manuale fornisce una formula per calco- 
lare la frequenza del suono emesso a secon- 
da del valore introdotto nel registro del 


suono che, comunque, secondo le nostre 
prove, non va presa troppo alla lettera. 

Una scelta progettuale, magari discuti- 
bile, ma sicuramente non occasionale bensi 
motivata da scelte ben precise, ha portato 
ad escludere gli sprite che nel manuale non 
sono neanche citati. 

Anche per modificare la combinazione 
del colore dello sfondo e del bordo abbia- 
mo il comando COLOR che, grazie ad un 
parametro aggiuntivo, permette di variare, 
pensate un po', anche la luminosità dei 
colori sullo schermo. 

La grafica, con 320 x 200 punti, possie- 
de un set di istruzioni che raggruppano le 
due doti di semplicità e potenza, permet- 
tendo ottimi risultati. 

GRAPHIC ci porta nel modo grafico in 
alta risoluzione o multicolor e permette (se 
richiesto) di dividere lo schermo in un'area 
per il disegno ed un'altra per il lesto che 
inoltre, con CHAR, può essere posiziona- 
to nell'area ad alta risoluzione per com- 
mentare i disegni anche con scritte in cam- 
po inverso, Con BOX possiamo disegnare 
quadrati e rettangoli, farli ruotare e nello 
stesso tempo colorarli e con DRAW si 
tracciano agevolmente linee: la mancanza 
del Plot è solo teorica, dato che lo stesso 
Draw ne svolge la funzione semplicemente 


Tabella riassuntiva. 



KEYWORD 

TYPE 

KEYWORD 

TYPE 

ABS 

tunction — numeric 

GSHAPE 


RENAME 

command 

ASC 

lunction— numenc 

HEADER 


RENUMBER 

command 

ATN 

lunction — numenc 

HEXS 

function — string 

RESTORE 

statement 

AUTO 

command 

IF GOTO 

statement 

RÉSUMÉ 

statement 

BACKUP 

command 

IF THEN ELSE 


RETURN 

statement 

BOX 

statement 

INPUT 


RGR 

function — numeric 

CHAR 

statement 

INPUT# 

statement 

RIGHTS 

function— string 

CHR$ 

function — string 

INSTR 


RLUM 

function— numeric 

CIRCLE 

statement 

INT 


RND 

function— numeric 

CLOSE 

statement 

JOY 


RUN 

command 

CLR 

statement 

KEY 

command 

SAVE 

command 

CMD 

statement 

LEFTS 


SCALE 

statement 

COLLECT 

command 

LEN 


SCNCLR 

statement 

COLOR 

statement 

LET 


SCRATCH 

command 

CONT 

command 

LIST 

command 

SGN 

lunction— numeric 

COPY 

command 

LOAD 

command 

SIN 

function —numeric 

COS 

function — numeric 

LOCATE 


SOUND 

siatemeni 

DATA 

statement 

LOG 

function— numeric 

SPC< 

function— special 

DEC 

function — numeric 

LOOP 

statement 

SOR 

function— numeric 

DEF FN 

statement 

MIDS 

function — string 

SSHAPE 

statement 

DELETE 

command 

MONITOR 

statement 

STatus 

reserved — numenc variatilo 

DIM 

statement 

NEW 

command 

STOP 

statement 

DIRECTORY 

command 

NEXT 

statement 

STR$ 

lunction— string 

DLOAD 

command 

ON GOSUB 

statement 

SYS 

statement 

DO 

statement 

ON GOTO 

statement 

TABI 

function— special 

DRAW 

statement 

OPEN 

statement 

TAN 

lunction — numeric 

DSAVE 

command 

PAINT 

statement 

TI 

reserved— eumene vanable 

END 

statement 

PEEK 

function— numeric 

TIS 

reserved— string variable 

ERR$ 

function — string 

POKE 

statement 

TRAP 

statement 


function — numeric 

POS 

function— numeric 

TROFF 

statement 


statement 

PRINT 

statement 

TRON 

statement 


function — numeric 

PRINT# 

statement 

UNTIL 

statement 


statement 

PRINT USING 

statement 

USR 

function — special 


statement 

PUDEF 

slaiemeni 

VAL 

function — numeric 

GET# 

statement 

RCLR 

lunction— numeric 

VERIFY 

command 



RDOT 


VOL 

statement 

GOTO 


READ 

statement 

WAIT 

statement 

GRAPHIC 

statement 

REM 

statement 

WHILE 

statement 


50 


MCmicrocomputer n. 38 - febbraio 1985 




omettendo tutti i parametri che non servo- 
no (in pratica rimangono solo il tipo di 
punto — scritto o cancellato — e le coordi- 
nate). PAINT serve per colorare. SCALE 
per modificare la scala nell'area grafica e 
LOCATE per spostare l'origine di un nuo- 
vo disegno in una certa posizione sullo 
schermo. Attentamente va osservata la so- 
fisticata funzione CIRCLE dotata di ben 
nove parametri con cui. oltre che circonfe- 
renze. ellissi ed archi di cerchio, possiamo 
anche tracciare poligoni inscrivibili in un 
cerchio come triangoli, esagoni, ottagoni, 
ecc.. Per concludere questa parte ricordia- 
mo SSHAPE e GSHAPE che ci permetto- 
no di manipolare aree dello schermo trat- 
tandole come variabili. 

Il tutto è veramente notevole. 


Hardware e periferiche 

L'architettura interna di questa macchi- 
na è molto più compatta rispetto ai modelli 
precedenti grazie all'uso di un chip specia- 
lizzato che si incarica da solo di svolgere 
tutte le funzioni importanti e. se aggiungia- 
mo i chip di Ram e di Rom insieme al 
microprocessore 8501 (un'ulteriore riela- 
borazione del 6502). contiamo solo cinque 
circuiti integrati di grosse dimensioni, cioè 
dai 28 ai 48 pin. Essendo, come già detto, le 
più importanti funzioni gestite da un solo 
integrato, mancano tutti i chip specializza- 
ti come quelli di I/O (il Vie conteneva due 
6522 ed il C 64 due 6526) ed altri per suono 
e video, e ciò si risolve in una riduzione 
delle dimensioni della scheda componenti 
che assume le misure di circa 32 x 1 3 cm (le 
precedenti erano 39 x 17 circa). Anche l'a- 
limentatore cambia ed è anch’esso più 
compatto essendo dotato di spina incorpo- 


rata che gli permette di collegarsi diretta- 
mente alla presa di corrente evitando un 
ulteriore ed antiestetico cavo. Ai suoi capi, 
sotto carico, abbiamo rilevato l'esatto va- 
lore di tensione continua nominale indica- 
to dalla casa e cioè 9.5 volt. Tale tensione 
viene livellata a 5 volt dal solito 7805, al- 
loggiato su di un dissipatore, e va poi ad 
alimentare il circuito. 

Completata la sintetica descrizione del- 
l'hardware di base, vogliamo ora accenna- 
re alla compatibilità delle vecchie periferi- 
che con il C 16. 

Abbiamo effettuato una prova di stam- 
pa con la vecchia GP I00VC e tutto c 
andato per il meglio. Lo stesso si è verifica- 
to usando il Disk Drive 1541 dal quale 
abbiamo letto e fatto girare alcuni pro- 


grammi scritti per gli altri due modelli: 
naturalmente si trattava di programmi che 
non contenevano delle Peek o delle Poke. 
Abbiamo inoltre provalo un drive doppio 
compatibile non della Commodore, il Su- 
per Disk Drive SD-2 MSD della Telav ed 
anche stavolta le cose sono andate per il 
meglio, riuscendo ad indirizzare ogni sin- 
golo drive grazie ai comandi specializzati 
descritti nell'articolo che ci vengono messi 
a disposizione dal C 1 6, ed effettuare copie 
di file o interi dischetti non protetti da un 
elemento all’altro. 

Per concludere, due parole sul nuovo 
registratore, il 1531. Le prime differenze 
che saltano agli occhi rispetto al modello 
più vecchio sono la forma, più tondeggian- 
te. ed il colore, lo stesso del C 16. Anche 
all'interno troviamo delle novità: la mecca- 
nica è più compatta e la scheda componen- 
ti è diversa. Rimane l'integrato 7414N 
(questa volta è un 74CI4N) mentre i due 


operazionali vengono sostituiti da un uni- 
co chip. Anche il numero dei componenti 
discreti è molto minore, ma in definitiva lo 
schema circuitale non dovrebbe essere tan- 
to diverso. Dimenticavamo di dirvi che è 
stato aggiunto un Led rosso che è attivo 
durante la registrazione ed inoltre il cavo 
che va al computer termina, all'interno del 
registratore, con un connettore a 7 poli che 
lo rende facilmente asportabile. Ulteriori 
delucidazioni sulla compatibilità ve le da- 
remo quando avremo sottomano uno dei 
nuovi connettori per la prova. 

Conclusioni 


La macchina offre delle prestazioni mol- 
to buone, che diventano davvero ragguar- 
devoli se rapportate al prezzo, di gran lun- 
ga il più basso della categoria. Il Basic sale 
di parecchi gradini rispetto a quello impie- 
gato sul Vie e sul 64 e ne rende l'uso decisa- 
mente più agevole oltre che invitante; come 
più volte ripetuto nel corso della prova, 
l'aggiunta del set dedicato alla grafica, del 
Monitor LM e la possibilità di gestire un 
doppio drive ne fa una macchina completa 
e competitiva (non solo per i novizi, ma 
anche per gli esperti e assolutamente non 
come ripiego). A causa della maggiore 
compattezza, motivata dalla necessità di 
contenere il prezzo, viene sacrificata la 
porta utente, ma ciò per molti non costitui- 
sce un handicap, e i più esperti sapranno 
comunque sfruttare lo slot per le cartucce; 
riguardo alla memoria. 1 2K non sono mol- 
ti. ma forse non sono neanche pochi se si 
pensa sia alla possibilità di sfruttare le rou- 
tine grafiche e sonore già presenti nel siste- 
ma che a quella di avere presto delle espan- 
sioni (cosi come è avvenuto nel passato e 
come assicura la Commodore) per questo 
computer che quindi potrà contare su del 
buon software cosi com’è avvenuto per il 
64. 

Resta ovviamente, in un mercato che va 
sempre più verso la standardizzazione, il 
problema del non standard a livello, ad 
esempio, di interfacce; né si può dimentica- 
re che la casa è rimasta praticamente sola a 
lavorare su 6502 e derivati in un mondo 
che. e più che mai con l'avvento degli 
MSX. è ormai piuttosto decisamente o- 
rientato allo Z-80. Ma Commodore è un 
nome che può permettersi di puntare al 
successo anche senza troppi... compagni di 
standard. MC 



MCmicrocomputer n. 38 - febbraio 1985 


51 






ACT 

Apricot FI 

di Maurizio Bergami 


Dopo aver ollenulo un largo consenso con 
l'Aprico!, un inieressaniissinw computer or- 
gogliosamente definito "della (piarla gene- 
razione" dai suoi progettisti. VA CT Interna- 
tional lia recentemente allargalo la sua gam- 
ma con due nuovi modelli, un desktop ed un 
portatile, chiamati, senza eccessiva fanta- 
sia, Apricot FI e Apricot Portahle. 

In questa prova vi presentiamo il primo 
dei due. un sistema rivolto al mercato busi- 
ness dal costo, tuttavia, estremamente con- 
tenuto. 

In Inghilterra infatti ITI viene presentalo 
come Vunico vero sistema professionale al di 
sotto della fatidica barriera delle 1000 ster- 

Eccone le caratteristiche principali: mi- 
croprocessore 8086 a 16 bit. sistema opera- 
tivo MS DOS. 128 o 256 K di memoria cen- 
trale, floppy da 3,5" con capacità di 3 15 K 
(720K con l'opzione doppia faccia / doppia 
densità) ed un bel po ' di programmi applica- 
tivi forniti assieme al computer. 

Davvero niente male come biglietto da 

Del fratello maggiore l'FI conserva poi la 
filosofia progettuale, che tende a proporre 
macchine non solo potenti, ma anche estre- 
mamente "user friendly" . cioè in grado di 
essere sfruttate dall'utente, per quanto ine- 
sperto. senza problemi e n.el modo più imme- 
diato possibile. 


Descrizione generale 


Il contenitore dell'FI ribadisce ancora 
una volta che il fattore estetico alla ACT 
non é considerato per nulla secondario. 
Nonostante la forma inconsueta, che vede 
la profondità prevalere nettamente sulle 
altre due dimensioni, l' Apricot FI è bello e 
soprattutto "pulito". 


A provocare questa seconda impressio- 
ne contribuisce soprattutto la scarsità di 
connessioni tra i tre pezzi che costituiscono 
il sistema. Esclusi quelli di alimentazione, 
infatti, l'unico cavo visibile é quello del 
monitor. 

A pensarci bene forse l'FI esagera addi- 
rittura: e la tastiera come è collegata? Ri- 
sposta: attraverso un trasmettitore a raggi 


52 


MCmicrocomputer n. 38 - febbraio 1985 




infrarossi, esattamente come il mouse, op- 
zionale, previsto da tutto il software di 
sistema. 

Una soluzione indubbiamente molto in- 
teressante, che però può, in qualche caso, 
dare luogo a problemi, specie se la tastiera 
non é orientata direttamente verso l’unità 
centrale. A questo proposito vanno sotto- 
lineate due cose: la prima è che il ricevitore 
è piuttosto sensibile e non richiede un alli- 
neamento perfetto con la tastiera, la secon- 
da che il tutto o funziona o non funziona. 
Non si tratta di un'osservazione banale, 
ma vuole evidenziare il fatto che l'Fl utiliz- 
za una sofisticata tecnica di rilevamento e 
di correzione degli errori, che annulla in 
pratica la probabilità di utilizzare un dato 
ricevuto errato. Per dare un'idea dell'accu- 
ratezza dei controlli effettuati diremo che 
ogni lettera viene spedita come un pacchet- 
to di 32 byte dei quali solo 8 servono a 
rappresentarne il codice. Ciò significa, in 
pratica, che il segnale o viene ricevuto ed 
interpretato correttamente, o non viene ri- 
cevuto affatto: pericolose vie di mezzo non 
sono possibili. 

Ad ogni buon conto con il computer è 
fornito un cavo a fibra ottica che consente 
il collegamento diretto con la tastiera (po- 
trebbe esserci qualche problema, suppo- 
niamo, usando più macchine nello stesso 
ambiente). 

Molto fastidiosa ci sembra l'impossibili- 
tà di conoscere lo stato di carica delle 4 



batterie stilo che alimentano la tastiera; 
quando arriva il momento di cambiarle 
ovviamente questa si blocca e non c'è mo- 
do di capire se si è rotto tutto o semplice- 
mente se sono scariche le pile fino a che 
non si provvede alla loro sostituzione. 

Visto che siamo in argomento, conti- 
nuiamo a parlare della tastiera. Come si 
può vedere in fotografia è molto estesa; 
sono presenti tutti i tasti normali più tre 
tastierini diversi; quello di edit, che com- 
prende i tasti di Home, Clear, Insert, Dele- 
te e le frecce per il movimento del cursore; 
quello numerico, con anche i segni delle 
quattro operazioni, il punto decimale, il 
segno di percentuale e l'Enter, ed infine 10 
tasti funzione, uno dei quali (Keyboard 
Voice) è del tutto inutile essendo previsto 
per il controllo della ricognizione del par- 
lato sul Portable, che ha la stessa tastiera 
dell'Fl. 

Osservando più da vicino i tasti funzione 
si notano diverse serigrafie inconsuete, po- 
ste proprio sui bordi. Esse fanno riferimen- 
to ad una praticissima peculiarità dell'Fl 
che sostituisce, almeno parzialmente, il 
Microscreen del "vecchio" Apricot. Tra- 
mite i tasti funzione si può infatti accedere 
ad una vera e propria calcolatrice dotata di 
memoria, che viene attivata premendo il 
tasto F4 preceduto dallo shift. Il display 
della calcolatrice viene visualizzato sull'ul- 
tima riga di schermo e scompare quando 
viene premuto nuovamente F4. 



MCmicrocomputer n. 38 - febbraio 1985 


53 



Le modalità d'uso sono esattamente 
quelle di una calcolatrice classica, ma in 
più vi è la possibilità di inserire sullo scher- 
mo. al punto in cui si trova il cursore, il 
risultato di un'operazione semplicemente 
premendo il tasto Send. 

Ciò risulta utilissimo all'interno di nu- 
merosi programmi applicativi, come 
spreadsheet o wordprocessor. 

Per completare la descrizione della ta- 
stiera non rimane che citare i quattro pul- 
santini neri presenti in alto a destra. Il 
primo effettua un reboot del sistema, con 
la conseguente perdita di eventuali dati 
non ancora salvati; per evitare scene di 
disperazione dovute a pressioni accidenta- 
li, il tasto diventa attivo soltanto dopo una 
pressione continuativa di circa un sccon- 



b »»mnmiiiiitni»n»iL 




do. Il secondo tasto permette invece di fis- 
sare la velocità di repeat dei tasti, il terzo di 
cambiare data ed ora ed il quarto di bloc- 
care la tastiera fino a che non viene premu- 
to di nuovo. 

Passiamo ora all’unità centrale. Sul pan- 
nello frontale, oltre alla unità a disco ed a 
quattro indicatori a led, troviamo due pic- 
coli connettori che permettono il collega- 
mento della tastiera o del mouse tramile il 
cavo a fibra ottica già citato; sulla loro 
destra, nascosto da una striscia di plexi- 
glass scuro, vi è il fotodiodo che riceve i 
segnali provenienti dalla tastiera. 

Il retro presenta una serie di connettori, 
tra i quali spiccano quelli dell'interfaccia 
Centronics ed RS 232, Per il segnale video 
sono previste due uscite, una RGB ed una 


composita; la ACT può anche fornire, a 
richiesta, un modulatore che permette il 
collegamento di un normale TV color, ma 
si tratta di una soluzione davvero sconsi- 
gliabile, che non consentirebbe di apprez- 
zare a pieno le eccellenti caratteristiche 
grafiche dell’FI. 

Sul lato destro della macchina, infine, è 
visibile un connettore al quale possono es- 
sere collegate tutta una serie di periferiche 
e di espansioni, che comprendono tra l'al- 
tro un disco rigido da 10 Mbyte. 

L'ultimo elemento del sistema FI è na- 
turalmente il monitor, che va acquistato a 
parte. L'ACT propone nel suo catalogo tre 
modelli diversi: due a fosfori verdi, rispetti- 
vamente da 9" o 12", ed uno a colori di 
altissima qualità, che utilizza un tubo Tri- 


ACT Aprirvi FI 

nitron della Sony. Nulla impedisce, natu- 
ralmente, di sceglierne uno di marca diver- 

L'alimentazione del monitor è affidata 
ad un alimentatore esterno, che va comun- 
que collegato all’unità principale. Si tratta 
di un oggetto veramente orribile, degno 
soltanto degli home più economici; chissà 
come è scappata una simile bruttura in un 
computer cosi bello! 

L'hardware 


Aprire l’Apricot FI è veramente un gio- 
co da ragazzi: basta rimuovere due viti dal 
pannello posteriore per liberare la parte 
superiore del contenitore, che può cosi es- 
sere rimossa senza problemi. 

All'interno si notano le ampie scherma- 
ture. che nascondono quasi completamen- 
te la piastra principale. Nonostante le ap- 
parenze accedere a quest'ultima è molto 
facile, data la costruzione modulare 
dell'FI: basta rimuovere l'alimentatore (di 
tipo switching) e l'unità a minidischi, en- 
trambe collegate alla main board da pratici 
connettori, e sfilarla via. dato che non è 
fissata da alcuna vite. Il tutto per la gioia 
dei tecnici del servizio di assistenza, ma 
anche dell'utente, dato che minore è il tem- 
po di riparazione, minore è la fattura che si 
vede presentare in caso di guasti. 

Il numero di circuiti integrati utilizzato è 
davvero elevato; contrariamente all'attua- 
le tendenza l'ACT ha evitato di utilizzare 
delle ULA nel progetto. 

In alto a destra si trova un connettore in 
grado di ospitare una scheda di espansione 
senza dover obbligatoriamente ricorrere 
ad un box esterno. 

Al centro della piastra si vede il micro- 
processore 8086; subito alla sua destra si 
trovano le due EPROM che contengono le 
routine di bootstrap. Ancora più a destra si 
trova il banco di memoria formato, nella 
versione in prova, da 32 chip da 64 Kbit, 
per un totale di 256 K di RAM. Come 
abbiamo accennato in apertura esiste an- 
che una versione più economica, dotata di 
soli (si fa per dire...) 128 K RAM, 

Di tutta la RAM disponibile. 40 Kbyte 
sono occupati dalla memoria video. L'Fl è 
dotato di un'ottima grafica a colori: la ri- 
soluzione dello schermo è di 640 x 256 pi- 
xel, con un massimo di quattro colori con- 
temporaneamente sul video, scelti da una 
palette di sedici. 

Una mancanza che si nota è quella dello 
zoccolo per il coprocessore matematico 
8087, zoccolo che invece esisteva sull' Apri- 
cot. La scelta appare, tutto sommato, giu- 
stificata dal basso costo dell'FI, rispetto al 
quale il prezzo di installazione dell'8087 
sarebbe sicuramente sproporzionato. 

Software ed utilizzazione 


Il sistema operativo fornito con l'Fl è 
l'MS DOS versione 2.1 1; a parte possono 
essere acquistati anche il CP/M 86 ed il 
Concurrent CP/M , che erano standard sul- 
l'Apricot. 


54 


MCmìcrocomputer n. 38 - febbraio 1985 







ACT Aprico! FI 

La scella dell'MS DOS. oltre a mettere 
in mano all'utente un sistema operativo 
potente e molto diffuso, significa anche 
una parziale compatibilità con il PC IBM. 
che. come è noto, adotta anch'esso l'MS 
DOS. 

Chi ha letto la prova dell' Aprico! appar- 
sa sul numero di aprile '84 ricorderà pro- 
babilmente il programma Manager; que- 
sto programma "proteggeva" in un certo 
senso l'utente dalla relativa complessità del 
sistema operativo, consentendogli per e- 
sempio di caricare i programmi applicativi 
senza dover entrare in ambiente MS DOS. 
Come idea non era allatto sbagliata, ma in 
pratica si rivelava di efficacia un po' limita- 
ta poiché il Manager era un po' troppo 
macchinoso da usare. 

Con l’FI l'ACT ha fatto un altro tentati- 
vo. questa volta riuscito decisamente me- 
glio. sviluppando una nuova interfaccia 
verso l'utente chiamata Activity (per capi- 
re il perchè del nome non tentate la tradu- 
zione del termine inglese; pensate piuttosto 
alle prime tre iniziali: ACTivity...). 

Il programma di Activity permette, co- 
me il vecchio Manager, di scegliere e far 
girare un programma presente su disco op- 
pure di utilizzare una delle utility di siste- 
ma. ma lo fa in maniera decisamente più 
immediata e. oseremo dire, simpatica. 

In ambiente Activity vengono mostrale 
sullo schermo una serie di icone, ognuna 
delle quali rappresenta un programma o 
una utility. Per selezionare il programma 
desiderato basta spostare la freccia che ser- 
ve da cursore sull'icona ad esso corrispon- 
dente. utilizzando il tastierino numerico, 
che in questo caso sostituisce i tasti di spo- 
stamento del cursore, o. ancora meglio, il 
mouse opzionale. 

Le icone della zona inferiore dello scher- 
mo corrispondono ad una serie di comandi 
o programmi sempre presenti, come quelli 
di configurazione del sistema o di copia dei 
dischi. Una volta scelta un'opzione parti- 
colare di solilo appaiono altre icone corri- 
spondenti alle sotto-opzioni disponibili; in 
pratica è possibile fare tutto semplicemen- 
te selezionando una serie di icone successi- 

Nella parte centrale dello schermo si tro- 
vano invece le icone relative ai programmi 
presenti sul disco inserito nel drive; cam- 
biando disco si può infatti notare che le 
icone inferiori rimangono immutate, men- 
tre le altre cambiano a seconda dei pro- 
grammi che il disco contiene. 

Le icone che compaiono sullo scher- 
mo dipendono dal contenuto del file 
ACTIVITY.COM. nel quale si trovano 
tutte le informazioni relative ai collega- 
menti fra programmi ed icone. È possibile, 
per l'utente, creare delle nuove icone ed 
associarle ad altri programmi semplice- 
mente disegnando le icone con l’apposi- 
to editor fornito sul disco di sistema e 
poi aggiungendo nuovi record ad 
ACTIVITY.COM. Tutto il processo c 
spiegato in modo abbastanza chiaro sul 
manuale. Oltre ad Activity, vengono forni- 


delli della gamma Aprico! anche a livello di 
indirizzamento del video, nonostante il 
formato dello schermo sia diverso per o- 
gnuno. 

Stranamente non viene fornito alcun lin- 
guaggio di programmazione, segno che la 
ACT vede l'FI come un oggetto rivolto più 
al manager che al programmatore. 

Conclusioni 


Come al solito la prima cosa alla quale si 
guarda quando giunge il momento di tirare 
delle conclusioni è il prezzo. 

Sia per quello che riguarda la versione 
base che per la espansa siamo su cifre estre- 
mamente concorrenziali, viste le caratteri- 
stiche della macchina. 

Abbiamo di fronte dunque un personal 
versatile, estremamente comodo da usare, 
con un'ampia dotazione di software di ba- 
se e per giunta estremamente conveniente 
in termini di vii denaro. 

Peccalo per la mancanza del classico Ba- 
sic. ma sul mercato è comunque disponibi- 
le un'ampia scelta di linguaggi, ovviamen- 
te Basic compreso. 

A nostro parere, il potenziale acquirente 
farebbe bene ad indirizzarsi subito verso il 
modello espanso: con appena 400.000 in 
più si hanno altri 128 K di RAM ed altri 
300K sul dischetto. MC 


ti assieme all'FI numerosi altri program- 
mi. 1 più importanti sono senza dubbio i 
tre applicativi della Sorcini: Super Writer, 
SuperCalc e SuperPlanner. ai quali è riser- 
vato un apposito manuale. 

Dalla stessa Aprico! arrivano invece 
Diary e Sketch, rispettivamente un'agenda 
elettronica ed un sofisticato programma 
per disegnare. 

Per quanto riguarda la grafica l'Apricot 
FI è dotato del sistema GSX già presente 
sul suo predecessore; esso c una sorta di 
sottosistema operativo che mette a dispo- 
zione dell'utente una vasta serie di funzioni 
grafiche; il suo pregio maggiore è quello di 
permettere la compatibilità fra i vari mo- 


MCmicrocomputer n. 38 - febbraio 1985 


55 



Lotus 

Symphony 

per PC IBM 


Symphony è un nome che ormai dovrebbe 
essere ben conosciuto a citisi occupa più che 
superficialmente di piccola informatica, e 
specialmente ad un attento lettore di MC. 
Di esso infatti si è già parlato su queste 
pagine altre due volte : con una breve notizia 
sul numero 34 (ottobre 84) in occasione 
della sua presentazione ufficiale, e con una 
più estesa panoramica sul n. 37 del mese 
scorso. E questa che state leggendo è la 
prova, promessa appunto in quell'articolo. 
Per chi invece ancora non ne sapesse nulla, 
questa è un 'ottima occasione per aggiornar- 
si sulle ultimissime tendenze del software 
personale. Symphony è infatti il primo vero 
esemplare delta nuova generazione di pac- 
chetti detti multiapplicazioni: sofisticati 
programmi che uniscono in un ambiente uni- 
co e omogeneo te più comuni funzionalità di 
elaborazione personale, integrate in un sub- 
strato comune e manipolabili per mezzo di 
finestre. Symphony. in particolare, dispone 
delle funzioni di Spreadsheet . Data Base 
Management System. Word Processor. 
Communication Link e Business Graphics, e 
quindi permette la massima versatilità in 
quanto a gestione di dati, testi e immagini. 


Ciò significa che con Symphony si può gesti- 
re un data base i cui dati sono condivisi dallo 
spreadsheet e dal word processor, oltre a 
poter essere rappresentati in forma grafica ; 
e tutto senza uscire dal programma, salvare 
file intermedi od operare macchinose con- 
versioni. E. soprattutto, senza necessità di 
imparare comandi operativi differenti per 
agire su ogni struttura, in quanto Symphony 
mantiene consistentemente sintassi e seman- 
tica dei comandi nelle varie operazioni. 


Come si vede siamo piuttosto lontani dal 
vecchio e glorioso sistema “VisiCalc + 
Wordstar + Dbase II", che pure non è più 
vecchio di tre anni. Se ci è consentito un 
paragone stravagante. Symphony sta alla 
sacra terna poc 'anzi citata come un attuale 
impianto stereo coordinato sta alla canonica 
accoppiata Thorens + Marantz + AR di 
qualche anno fa. Nel senso che un insieme 
armonico di moduli progettati espressamen- 
te per funzionare in coordinazione è senz ’at- 


56 


MCmicrocomputer n. 38 - febbraio 1985 



tro meglio ! almeno in teoria I di un'unione 
di parli diverse e separate, ognuna specializ- 
zala nella sua funzione ma probabilmente 
affet te da problemi di compatibilità o comu- 
nicazione. In teoria, dicevamo: ed infatti i 
coordinali hanno dovuto aspettare molti an- 
ni prima di essere accettati dai puristi come 
impianti degni di essere ascoltati. Può essere 
che una cosa del genere capili anche per i 
nuovi software integrati: la prova che state 
per leggere c/uindi potrà anche aiutarci a 
capire la giusta collocazione di questo tipo di 
prodotti, e se davvero ci faranno cambiare 
modo di lavorare. 

Come al solito cercheremo dì darvi un 'im- 
pressione di massima sulle caratteristiche e 
sulle capacità di Symphony. senza natural- 
mente tentare di sostituirci al manuale e 
quindi non entrando troppo in dettaglio sui 
vari comandi: sperando che ciò possa aiutar- 
vi a valutare se Symphony è ciò che fa per voi 


Nascita di un'idea: 1-2-3 


Cominciamo prendendo il discorso un 
po' alla lontana. Partiamo dall' 1-2-3, un 
prodotto software che fece molto parlare 
di sé non più tardi di un anno fa. 1-2-3. il 
primo prodotto della giovanissima Lotus, 
era un primo abbozzo di ciò che ora è 
Symphony. Si trattava infatti di uno 
spreadsheet piuttosto evoluto, con un paio 
di grosse novità rispetto a prodotti consi- 
mili: la possibilità di gestire un limitato 
data base e quella di produrre grafici com- 
merciali quali istogrammi e diagrammi a 
torta. La prima caratteristica, decisamente 
nuova, derivava da una idea di righe e 
colonne dello spreadsheet come un file for- 
mato da record e campi. Ogni riga é un 



record, ogni cella nell'ambito della riga (e 
quindi ogni colonna) è un campo. In que- 
sto modo è possibile organizzare un data 
base in uno spreadsheet, e le operazioni su 
un ambiente diventano possibili in termini 
di operazioni sull'altro. Semplice ed effica- 
ce. tanto che viene da chiedersi perché non 
ci si fosse pensato prima. 1-2-3, comunque, 
nasceva e si fermava qui; l'unificazione tra 
data base e spreadsheet era totale e non si 
parlava di "ambienti" né di finestre, anche 
se vi era la possibilità di splittare lo scher- 
mo in due parti puntate su zone indipen- 
denti dello spreadsheet. Nonostante ciò e- 
ra (ed é. essendo ancora supportato dal 
produttore) un programma interessantissi- 
mo e molto potente. E, soprattutto, con 
un’idea di base decisamente promettente, 
che. come vedremo, è la stessa che informa 
tutta la struttura di Symphony. 

Symphony: ambienti e finestre 

Symphony sviluppa l'idea dell' 1-2-3 ag- 
giungendovi inoltre il concetto di “am- 
biente". Un ambiente è un modo di vedere i 
dati in funzione delle operazioni che si vo- 
gliono effettuare su di essi. Abbiamo detto 
prima che una riga di dati nello spread- 
sheet può essere vista come un record: nul- 


la toglie però che possa essere vista, ad 
esempio, anche come una normale riga di 
testo. In altre parole, il medesimo insieme 
di dati può essere pensato in modi diversi a 
seconda di come ci fa comodo in un certo 
momento: se ci serve per rappresentare 
un'informazione di un archivio è un re- 
cord. se ci serve per effettuare calcoli è un 
serie di celle dello spreadsheet, se infine ci 
serve per essere stampato in un documento 
è una riga di testo. Questo è il concetto di 
base di Symphony: un dato elementare od 
un aggregato di dati non hanno un signifi- 
cato assoluto, ma assumono significati di- 
versi a seconda del contesto in cui li si 
considera. Questi contesti si chiamano am- 
bienti. e vengono realizzati per mezzo di 
finestre. Una finestra è un'area dello scher- 
mo che mostra una parte dell'insieme di 
dati di cui si dispone, e tramite la quale si 
può interagire con esso. Esistono diversi 
tipi di finestre, tanti quanti sono gli am- 
bienti disponibili: sono anzi le finestre a 
determinare l'ambiente in cui si intende 
lavorare e quindi le operazioni consentite 
in un certo momento. Attraverso una fine- 
stra di tipo Spreadsheet, ad esempio, si 
vedranno i dati come celle e si potranno 
impostare formule ed effettuare calcoli; at- 
traverso una di tipo Data Base gii stessi 
dati saranno visti come record di un file, e 
si potranno inserire, cancellare o modifica- 
re singole registrazioni; una finestra di tipo 
Word Processor mostrerà i dati come righe 
di testo, e permetterà di aggiungere, toglie- 
re o modificare parole e frasi, mentre una 
tipo Graphics visualizzerà gli stessi dati 
sotto forma di grafici o diagrammi. In defi- 
nitiva le finestre si possono considerare 
alla stregua di “lenti" che di volta in volta 
mostrano un aspetto dei dati raccolti in 


Copyright (0 HI?. 1113, liti 
lotus Dpvrtopnril Corporation 
»— •: , Risortoli 


imm-eùn?3 

■moto 1.00 (0.03 


lo oprioni disponibili di Synphony sono lo sopì» 
occorro sostituirò il Disco Diooromo col Disco 
Prrnoro Hit 


• Ciudi intcrottivi 

• dutoistni/iono su Synphony 

• AppliCi/ioni oiiiunliuo 

• Inpostmoni por lo commi 


‘óoid* i , di'i“on 
por inuiiro. 


7.TIWJ Wiltft'iph lrin>ljte I 


ffrnii-'ii'.iiiiiwiifiiimHiuirMiiJi 


Synphony SoFtViir (opvrNht tt) IIP, ',11, 14 Ioli» Proci 


MCmicrocomputer n. 38 - febbraio 1985 


57 







memoria; e quindi i vari ambienti sono 
solo diversi modi di vedere la stessa cosa. 
Conseguenza di ciò c che ogni cambiamen- 
to apportato sui dati si riflette, automati- 
camente ed istantaneamente, su tutti gli 
ambienti. E siccome Symphony non pone 
limite al numero di finestre apribili con- 
temporaneamente sullo schermo l'utente è 
in grado di controllare immediatamente gli 
effetti su ogni ambiente di un intervento 
effettuato in uno di essi. 

Le altre caratteristiche di base 

Un'altra caratteristica originale di Sym- 
phony è quella di incorporare un sofistica- 
to modulo di Communication ed emula- 
zione di terminale; ciò permette di sfruttare 
come fonte di dati non solo la tastiera ma 
qualunque altro dispositivo in grado di 
colloquiare tramite modem. Cosi ci si può 
collegare ad un Itosi remoto, ad un servizio 
di banca dati pubblico, ad un altro perso- 
nal. e scambiare dati senza uscire dal pro- 
gramma; col vantaggio che i dati ricevuti 
entrano nella struttura di Symphony (sia 
essa Data Base o Spreadsheet) direttamen- 
te. senza dover passare per file di transito o 
dover operare conversioni. I dati cosi ac- 
quisiti risultano immediatamente disponi- 
bili. come se fossero stati impostati da ta- 
stiera. 

Symphony poi è programmabile: ossia è 
possibile creare strutture dette Macro for- 
mate da sequenze di comandi di Sympho- 
ny. richiamabili con la pressione di un ta- 
sto. In questo modo si possono "congela- 
re" e catalogare sequenze di operazioni di 
tipo ripetitivo, per una più semplice esecu- 
zione con minor possibilità di errori. Un 
potente linguaggio di controllo per le ma- 
cro mette inoltre l'utente in grado di rende- 


re i suoi macroprogrammi piuttosto sofi- 
sticati: ad esempio da una macro si può 
chiamare un numero di telefono ed effet- 
tuare il login in modo automatico. 

Infine Symphony può far pieno uso dei 
vari dispositivi grafici eventualmente di- 
sponibili, schermo a parte, trasferendo i 
suoi grafici su ploltero stampanti grafiche: 
può operare conversioni di formato dei file 
da/verso formati .WRK (formato Sym- 
phony) DIF (Data Interchange Format, 
ormai lo standard per il trasferimento di 
dati fra pacchetti diversi), .VC (formato 
VisiCalc) c .DBF (formato DBase II); di- 
spone di funzioni di sicurezza a vari livelli, 
per impedire l'accesso a determinate fun- 
zioni alle persone non autorizzate; tiene 
conto della data e dell'ora, eventualmente 
anche nei calcoli: e crediamo che come no- 
tizie introduttive possano bastare. 

Possiamo a questo punto dedicarci alla 
conoscenza ravvicinata con questo mostro 
software, cominciando innanzitutto... dal- 
l’esterno. 

La confezione 

Che la Lotus abbia voluto fare di Sym- 
phony un oggetto originale appare chiaro 
sin dal primo sguardo alla confezione. 
Symphony si presenta in un contenitore di 
plastica grigia asimmetrico e piuttosto 
massiccio, formato da due sezioni dedicate 
ad alloggiare una la custodia per i dischetti 
e l'altra i manuali. I dischetti sono posti in 
un lussuoso contenitore del medesimo ma- 
teriale. organizzalo con apertura a libro e 
chiusura ad incastro; al suo interno sono 
incernierati quattro fogli di plastica tra- 
sparente. ognuno dei quali dispone di due 
tasche in cui alloggiare altrettanti dischet- 
ti. Siccome il sistema è suddiviso su sei 


Urna Symphony per PC IBM 
dischi rimane il posto per due minifloppy 
dell'utente. All'interno delle due sezioni 
che formano il guscio del contenitore sono 
inoltre ricavati gli alloggiamenti per la gui- 
da di riferimento rapida e la mascherina di 
plastica con le funzioni dei tasti definibili. 
Nell’altro alloggiamento della confezione 
trovano posto i manuali, quattro per l'e- 
sattezza: una introduzione (110 pagine!), il 
manuale How-To (come fare a...), il ma- 
nuale di riferimento ed un glossario dei 
termini e dei messaggi del programma. 
Tutti, tranne l'ultimo, rilegati a spirale, ma 
con una strana copertina dotata di una 
larga bandella che forma una specie di co- 
sta sul lato opposto alla spirale e che fun- 
ziona egregiamente come segnalibro. Il 
lutto è piuttosto lussuoso e ben realizzato, 
tendente a colpire l'utente anche dal punto 
di vista estetico. 

Nota di cronaca, il tutto pesa quasi 
quattro chili: se questo é il soft (!) ware... 

La struttura e i requisiti hardware 

Symphony viene, dunque, su ben sei 
floppy. Niente paura, però: non c'è alcun 
bisogno di swapping durante l'uso. Tutto il 
programma è. infatti, contenuto in un solo 
dischetto, e viene caricato per intero in 
memoria. Ciò significa che Symphony do- 
po il lancio non ha più bisogno di moduli 
in linea c quindi non deve più andarsi a 
leggere i dischetti, salvo il caso degli help 
che vedremo fra un attimo. La soluzione di 
caricare tutto in memoria, però, se da un 
lato ha il vantaggio di liberare i drive, dal- 
l'altro obbliga ad avere una quantità di 
memoria centrale piuttosto elevata, tale da 
contenere tutto il programma ed una 
quantità ragionevole di dati. Allo scopo 
servono almeno 320 Kb di RAM. che sono 
proprio il minimo indispensabile: meglio 
comunque averne di più. diciamo 5I2K. 
per poter disporre di uno spreadsheet piut- 
tosto ampio c per poter caricare in memo- 
ria qualche applicazione supplementare 
(ne parleremo tra poco). La nostra prova è 
stata appunto condotta con un IBM-PC 
con due drive da 360K e 5 1 2K di RAM. e ci 
c sembrata la configurazione più opportu- 
na. Symphony può comunque girare anche 
Sull'XT, eliminando cosi anche la necessità 
di avere in linea il dischetto di help. 

Torniamo quindi ai sei floppy. Su di essi 
si trovano, rispettivamente, il Symphony 
vero e proprio, i messaggi di help. il pro- 
gramma PrintGraph, il programma In- 
stali. la libreria di driver necessari ad In- 
stali ed un corso Tutorial ad autoistruzio- 
ne. Di ognuno di essi vedremo l'uso al 
momento opportuno. Notiamo intanto 
che i primi due sono registrati in formato 
protetto: è possibile copiarli, ma il lancio 
dalla copia non è accettato in quanto il 
programma è in grado di accorgersi della 
differenza. Per questo Symphony può esse- 
re caricato sul Winchester dell'XT, ma al 
momento del lancio vuole trovare il di- 
schetto originale nel drive, altrimenti si ri- 
fiuta di partire. 


58 


MCmicrocomputer n. 38 - febbraio 1985 



La prima cosa da fare una volta in pos- 
sesso di Symphony é copiare tutti i dischet- 
ti per sicurezza, trasferire l’MS-DOS sul 
dischetto col programma stesso ed instal- 
larlo tramite il programma Instali. L'in- 
stallazione consiste semplicemente nel 
creare un file (identificato con .DRV) con- 
tenente i moduli "driver", ossia le routine 
di controllo dei dispositivi hardware di cui 
è dotato il particolare sistema a disposizio- 
ne. Il dischetto Instali Library contiene 
tutta una serie di driver, ed il programma 
Instali non fa altro che scegliere quelli op- 
portuni in base alle risposte che l'utente dà 
ai vari menu di opzioni. Il file .DRV (che 
per default si chiama LOTUS ma potrebbe 
avere qualunque altro nome) deve essere 
messo nello stesso disco del programma, 
cosi che questo possa caricarlo in memoria 
al momento del lancio. Al termine dell'in- 
stallazione conviene proteggere i dischetti 
dalla cancellazione con le apposite linguet- 
te autoadesive, onde evitare spiacevoli in- 
cidenti. 

E adesso lavoriamo 


Dopo tanto parlare possiamo finalmen- 
te cominciare a fare qualcosa. Symphony 


si può lanciare in più modi; contestualmen- 
te al boot oppure no. 

Nel primo caso basta accendere la mac- 
china col disco nel drive (se abbiamo tra- 
sferito il sistema sul disco di Symphony). e 
l'apposito file AUTOEXEC.BAT si occu- 
pa di lanciare il programma; altrimenti do- 
po il boot si può digitare Symphony oppu- 
re Access. Nel primo caso si lancia solo 
Symphony, nel secondo caso ci si ritrova in 
un metaprogramma (Access, appunto) dal 
quale, tramite menu, si possono lanciare 
sia Symphony che programmi ed esso col- 
legati. passando dall'uno all'altro senza 
mai dover tornare all'MS-DOS. Gli altri 
programmi accessibili sono PrintGraph. 
che esegue il dump dei grafici verso plotter 
e/o altri dispositivi di hardcopy su carta, e 
Translate, che permette le conversioni di 
formato dei file di lavoro come accennato 
in precedenza. 

Supponiamo comunque di aver lanciato 
Symphony in uno qualunque dei modi 
possibili. Ci si trova subito in ambiente 
Sheet. ossia foglio elettronico. La struttura 
dello schermo, mantenuta consistentemen- 
te in tutti gli ambienti, è la seguente: le 
prime due righe (dette pannello di control- 
lo) mostrano l'ambiente in cui ci si trova ed 


il modo in cui si sta lavorando, il menu di 
comandi disponibile con le spiegazioni dei 
singoli comandi ed infine posizione del 
cursore c valore su cui è puntato. Tutte 
queste indicazioni non appaiono contem- 
poraneamente, ma in certi momenti alcune 
scompaiono e vengono sostituite da altre, 
in modo da mantenere in vista sempre e 
solo le notizie più importanti nella fase in 
cui ci si trova; ed inoltre qualcuna di esse 
può essere leggermente diversa in funzione 
dell'ambiente in cui ci si trova. Le ultime 
due righe dello schermo contengono data 
ed ora costantemente aggiornate (lette dal- 
le apposite locazioni del DOS), segnali che 
indicano quali interruttori della tastiera 
sono attivi (il PC I BM non ha infatti segna- 
lazioni di Caps Lock. Num Lock e Scroll 
Lock), altri segnali di avvertimento o mes- 
saggi di errore e una traccia di dove ci si 
trova nella complessa struttura ad albero 
dei vari menu. Le venti righe centrali sono 
invece lo spazio di lavoro vero e proprio, 
nel quale si possono aprire finestre, ci si 
muove col cursore, si impostano valori ed. 
insomma, si compiono tutte le operazioni 
con i dati. Le funzioni accessorie per l'im- 
postazione dei comandi si ottengono per 
mezzo dei tasti speciali e di quelli definibili 


MCmicrocomputer n. 38 - febbraio 1985 


59 










di cui è dotata la tastiera del PC. L'accesso 
ai menu con i vari comandi si ottiene tra- 
mite i tasti definibili F9 c FIO. IL tasto F9 
fa entrare nel cosiddetto menu di servizio 
(Services), nel quale si hanno a disposizio- 
ne comandi di portata generale ed indipen- 
denti dall'ambiente: operazioni sulle fine- 
stre, sui file, opzioni di stampa e di configu- 
razione. Il tasto FIO è invece dipendente 
dal contesto, nel senso che dà accesso ad 
un menu differente a seconda dell'ambien- 
te in cui ci si trovava al momento della 
chiamata: ognuno di questi menu contiene 
tutti i comandi disponibili in quell'ambien- 
te. Gli altri tasti svolgono delle funzioni 
particolari nei vari contesti, tranne FI che 
richiama gli help. ed è attivabile sempre e 
comunque. Fra i tasti non definibili, ESC 
ha sempre la funzione di UN DO. ossia di 
tornare indietro un passo o eliminare una 
condizione di errore; i tasti di cursore, Ho- 
me, Page Up, Page Down ed End manten- 
gono gli ovvi significati di spostamento ed 
infine Ins e Del permettono correzioni nel- 
le stringhe impostate. Il tasto Alt é usato 
come shift alternativo per ulteriori funzio- 
ni (ad esempio richiamo di Macro), mentre 
lo Scroti Lock fa si che sia la finestra a 
scrollare dietro il cursore anziché essere il 
cursore a spostarsi nella finestra. 

Le finestre sono zone di schermo rac- 
chiuse da una linea ed identificate da un 
nome scelto dall’utente. La linea che rac- 
chiude la finestra (eliminabile se si vuole) 
serve a Symphony per presentare diverse 
informazioni sulla finestra stessa: oltre al 
nome vi compaiono riferimenti inerenti 
all’ambiente di lavoro, quali numero di ri- 
ga e colonna per Io spreadsheet o margini 
ed intervalli di tabulazione per il word pro- 
cessor. Sullo schermo possono essere aper- 
te più finestre , anche di tipi diversi: natu- 
ralmente però si può lavorare solo su una 
finestra per volta. Quella in cui si sta lavo- 
rando si chiama finestra attiva e si distin- 
gue dalle altre perchè è identificata con una 
doppia linea sul lato inferiore. Per passare 


da una finestra ad un’altra si può usare un 
comando accessibile del menu Services o, 
più semplicemente, premere il tasto F6: ad 
ogni pressione ci si sposta in una finestra 
diversa, scorrendo una alla volta tutte le 
finestre aperte. Notiamo che la disposizio- 
ne geometrica delle finestre sullo schermo 
può essere qualsiasi, e le finestre possono 
anche sovrapporsi l’una all’altra, in parte o 
completamente; ci pensa Symphony a 
"portare in primo piano", ossia sopra alle 
altre, la finestra attiva. La struttura e le 
modalità di rappresentazione di ogni fine- 
stra sono stabilite dall’utente, e memoriz- 
zate da Symphony nei cosiddetti Settings 
Sheets; questi possono venire creati e cata- 
logati indipendentemente dalle altre ope- 
razioni. e successivamente associati alla fi- 
nestra desiderata. Il nome del Settings 
Sheet appare nella riga inferiore della fine- 
stra sul lato sinistro, mentre sul lato destro 
si trova il nome dato alla finestra stessa. 
Naturalmente i Settings Sheet variano a 



seconda dell’ambiente cui si riferisce la fi- 
nestra, ed esistono anche per oggetti che 
non sono finestre: ad esempio il Global 
Settings Sheet riguarda le caratteristiche 
globali del programma ed il Print Settings 
Sheet quelle della stampante. Più finestre 
possono condividere lo stesso Settings 
Sheet ed avere, quindi, stesse modalità di 
rappresentazione. 

Vista quindi la cosa nelle sue linee gene- 
rali passiamo ad una breve panoramica sui 
vari ambienti disponibili, con le varie fun- 
zioni ed i comandi relativi. 

La finestra Sheet 


La finestra di tipo Sheet (spreadsheet) è 
la principale risorsa di Symphony. In essa 
il programma alloca ed utilizza aree di la- 
voro che gli servono per gestire dati negli 
altri ambienti, oltre ad essere naturalmente 
a disposizione dell'utente per i suoi calcoli. 
In questo ambiente il pannello di controllo 
mostra le coordinate della cella su cui è 
puntato il cursore ed il suo contenuto “ve- 
ro", ossia la formula o il valore che vi sono 
contenuti. 

Caratteristiche collaterali a parte, l'am- 
biente Sheet è decisamente potente di per 
sé: l'area pontenzialmente utilizzabile è di 
256 colonne per 8192 righe, mentre quella 


Lotus Symphony per PC IBM 
effettivamente disponibile dipende dalla 
quantità di RAM installata. I calcoli ven- 
gono effettuati con quattordici cifre signi- 
ficative. ed è possibile stabilire il formato 
di ogni cella singolarmente con moltissime 
opzioni. Inoltre è disponibile un parco di 
funzioni particolarmente complesso che 
include funzioni matematiche avanzate 
(trigonometria, funzioni trascendenti), 
trattamento di stringhe (ricerca e sostitu- 
zione della sottostringa, conversioni strin- 
ga-numero- ASCII, conversioni maiusco- 
lo-minuscolo), funzioni statistiche (numeri 
casuali, somma, media, varianza, deviazio- 
ne standard), funzioni finanziarie e perfino 
calcoli con date e tempi! Una caratteristica 
assai interessante, già presente in 1-2-3. è 
che il programma nel ricalcolo del foglio 
non procede "stupidamente" per righe o 
per colonne, ma tiene conto deile relazioni 
iogiche fra le celle, e quindi calcola per 
primi quei valori che a loro volta servono 
per altri calcoli, indipendentemente dalla 



posizione relativa (geometrica) delle celle 
in questione. Ciò permette di non preoccu- 
parsi della disposizione geometrica delle 
celle nell'area di lavoro, ma anche e soprat- 
tutto di definire formule circolari o ricorsi- 
ve, ossia formule che dipendono da se stes- 
se: il programma se ne accorge (anche 
quando la ricorsività è estremamente me- 
diata!) e si limita a segnalare il fatto accen- 
dendo un particolare flag sullo schermo: in 
questo caso un'apposita opzione di confi- 
gurazione permette di definire il numero di 
cicli di cui debba essere composto ogni 
ricalcolo (da I a 50), per permettere di 
trarre la massima utilità dal calcolo di fun- 
zioni iterative convergenti. Nel caso servis- 
se, comunque, si può anche impostare il 
normale ricalcolo geometrico per righe o 
per colonne, ed in questo caso un’eventua- 
le circolarità viene ignorata. 

C’è da dire che nonostante l’indubbia 
complessità delle operazioni che può svol- 
gere, Symphony mantiene una notevole 
velocità di calcolo e, soprattutto, una "fur- 
bizia" impressionante: le più astruse rela- 
zioni ricorsive non lo sgomentano, le circo- 
larità più nascoste lo lasciano imperturba- 
bile. Con il suo spreadsheet si possono fare 
cose veramente molto complesse: tanto che 
un nostro amico, medico ricercatore, dopo 
una mezz’oretta di incredibili smanetta- 


MCmicrocomputer n. 38 - febbraio 1985 



Lotus Symphony per PC IBM 

menti, ha esclamato laconicamente: “ma 

con questo coso ci si crea la vita!”... 

La finestra Doc 


La finestra Doc (Documenti è quella in 
cui Symphony lavora come word proces- 
sor. I comandi disponibili sono quelli u- 
suali di inserimento e cancellazione di let- 
tere. parole e blocchi, ricerca e sosti- 
tuzione. movimento, giustificazione a ban- 
diera. centrale o a blocchetto e cosi via. 
comprendendo anche il controllo della la 
stampante. Il funzionamento è del tipo 
What-You-See-Is-What-You-Get, ossia 
ciò che si vede sullo schermo è esattamente 
quello che finirà sulla carta. Una larga par- 
te la fanno i tasti definibili e speciali, spe- 
cialmente quelli relativi ai movimenti del 
cursore. Quando si lavora in una finestra 
Doc. sul pannello di controllo appaiono 
informazioni sulla posizione del cursore 
nel testo, mentre nella riga superiore del 
bordo della finestra stessa appaiono le po- 
sizioni di tabulazione ed i margini. Da no- 
tare che Symphony vede il testo come un 
insieme di Label (etichette) dello spread- 
sheet, per cui bisogna stare attenti a non 
sovrascrivere eventuali celle già riempite, 
cosa che si fa allocando per il documento 
un'area inutilizzata del foglio; sempre per 
questo motivo nel pannello di controllo 
compare fra le indicazioni di posizione an- 
che la coordinata della cella su cui sarebbe 
puntato il cursore se fossimo nello spread- 
sheet (o. che è lo stesso, della cella in cui 
risiede il carattere su cui è puntato il curso- 
re). 


La finestra Form 


La finestra Form (modulo) è quella rela- 
tiva alla gestione del data base. Il nome 
deriva dal fatto che. una volta definita la 
struttura dei campi del data base. Sympho- 
ny crea e visualizza un “modulo" su misura 
per quella struttura, e per inserire i dati 
basta "riempire le lineature" del modulo 
stesso. Symphony è in grado di effettuare 
sofisticati controlli di correttezza all'atto 
dell'Inserimento dei dati, e rifiutare quelli 
incoerenti con le informazioni ricevute; i- 
noltre può. sempre al momento dell'inseri- 
mento dei record, effettuare conversioni di 
formato (scalatura dei valori numerici, 
formato delle date o delle stringhe) ed ese- 
guire calcoli fra campi per ottenere il valo- 
re di altri campi del record. 

Una volta costituito il data base è possi- 
bile effettuare sui record sofisticate funzio- 
ni di ricerca e/o estrazione, eseguire ordi- 
namenti. stampare rapporti e prospetti con 
totali a rottura di controllo, e perfino ela- 
borare i dati con criteri statistici per calco- 
lare medie, varianze e deviazioni standard 
su valori estratti in base a particolari crite- 
ri. È possibile l'estrazione/fusione dei da- 
ti del data base con quelli dello spread- 
sheet, nel senso che record estratti dall'ar- 
chivio possono diventare celle dello 
spreadsheet e. viceversa, una zona dello 




spreadsheet può automaticamente essere 
incorporata nell'archivio. 

La finestra Graph 

La finestra Graph (Graphics) è quella in 
cui si possono tracciare grafici a partire dai 
dati dello spreadsheet. Le opzioni disponi- 
bili sono moltissime; sei variabili dipen- 
denti più una indipendente, sei tipi di grafi- 
ci (a linee, a barre, a barre sovrapposte, 
cartesiani, a torta e a differenza di valori), 
a colori o a tratteggio, su scale lineari o 
logaritmiche, con o senza "griglia"; è pos- 
sibile definire titoli, etichette, valori di sca- 
la, legende, anch'esse prese dallo spread- 
sheet; e Symphony stesso è in grado di 
inserire opportune grandezze di default 



il grafico appare da solo! 


quando necessario (ad esempio effettua la 
scalatura automaticamente e scrive sull'as- 
se y l'unità di misura appropriala; centi- 
naia. migliaia, milioni - in lettere!). 

Le modalità di visualizzazione dei grafi- 
ci sono molto influenzate dal tipo di hard- 
ware disponibile. Con la scheda colore 
IBM si dispone di tre colori (oltre al nero) 
in media risoluzione, e perdipiù non si pos- 
sono visualizzare i grafici contemporanea- 
mente alle altre finestre, ma bisogna com- 
mutare dall'uno all'altro tipo di visualizza- 
zione; oppure si può avere tutto insieme, 
ma i grafici diventano in bianco e nero. 
Con altre schede in commercio le cose van- 
no meglio: ad esempio le foto che illustra- 
no questo articolo sono state fatte con una 
scheda Plantronics. la quale dà la possibili- 


MCmicrocomputer n. 38 - febbraio 1985 


61 






là di visualizzare grafici in quattro colori 
contemporaneamente ai testi. 

I grafici, una volta messi a punto, posso- 
no venire salvati su disco (suffisso .PIC) 
per essere utilizzati dal programma Print 
Graph il quale é in grado di trasferirli su di 
un plotter od una stampante grafica per 
avere una hardcopy di qualità. 

La finestra Comm 


E vediamo infine la finestra Comm 
(Communication), ultima non perché me- 
no importante, ma in quanto poco utilizza- 
bile in queste nostre lande dove la Telema- 
tica dorme assieme a Biancaneve nel mon- 
do delle favole... 

In una finestra di tipo Comm si possono 
definire tutte le caratteristiche del modem 
in uso e del tipo di protocollo prescelto, 
naturalmente riferendosi ai più diffusi 
standard americani. Tra l'altro Symphony 
è anche in grado di effettuare l'autodial e 
l'autologin, ossia chiamare un host di cui 
conosca il numero ed agganciatisi instau- 
rando il collegamento; ed è anche capace di 
autoanswer (modem permettendo), ossia 
di rispondere automaticamente alle chia- 
male che chiedono un collegamento. Una 
volta aperta una finestra di tipo Comm si 
può tranquillamente tornare a lavorare 
sulle altre: Symphony monitorerà conti- 
nuamente la linea, avvertendo della situa- 
zione (eventuali chiamate in arrivo); in 
questo caso basterà tornare alla finestra 
Comm per svolgere le operazioni del caso. 

Utilizzazione 


La descrizione precedente è stata neces- 
sariamente piuttosto sintetica; e d'altra 
parte non poteva non essere cosi: i manuali 
messi insieme superano le 900 pagine! Cer- 
cheremo quindi di colmare le maggiori la- 
cune con queste impressioni d’uso. 

Innanzitutto è necessario esprimere la 
massima lode all'ingegnerizzazione del 
programma, in particolare per quanto ri- 
guarda l'interfaccia utente. Symphony é 
un prodotto incredibilmente user-friendly, 
che si adopera nelle sue linee essenziali 
quasi senza leggere i manuali. Merito di ciò 
è la sua semantica chiara e consistente e 
l'ottima struttura dei menu autoesplicativi 
su due righe (già dell’ 1-2-3), di cui la prima 
elenca i comandi disponibili e la seconda 
riporta una breve spiegazione del coman- 
do puntato dal cursore. Grazie a questo 
accorgimento è semplice impartire qualsia- 
si comando: basta spostarsi con i tasti di 
freccia sull'opzione desiderata e premere 
return, per entrare in un sottomenu dalla 
stessa struttura; cosi, guidati dalla struttu- 
ra ad albero, si raggiunge in breve il co- 
mando giusto. I comandi però possono 
anche essere impartiti con le iniziali delle 
opzioni dei menu, e ciò avvantaggia l'uten- 
te abituale che può evitare di perdere tem- 
po nella "navigazione" fra i menu. Un e- 
sempio: per salvare il lavoro su disco si 
entra nel menu Services (col tasto F9) e poi 
si scelgono gerarchicamente le opzioni File 


(menu di gestione dei file) e Save; ma si può 
più brevemente premere F9 F S, a tutto 
vantaggio della brevità. 

Un'altra cosa veramente degna di nota è 
la struttura degli help. Premendo FI Sym- 
phony va a cercare sull'apposito dischetto 
(che deve quindi essere in linea) uno scher- 
mo che riporta informazioni e suggerimen- 
ti relativi alla fase in cui ci si trova (Thelp è 
infatti sensibile al contesto); da questo 
schermo , senza più uscire dall'help, si può 
continuamente passare a tutta una catena 
di schermi collegati da una serie di riferi- 
menti incrociati dalla complessità incredi- 
bile. 

Cosi si dispone praticamente di un ma- 
nuale sullo schermo, ed oltretutto di un 
manuale intelligente che ci propone solo le 
parti in qualche modo collegate con ciò che 
stiamo facendo. Premendo ESC ci si ritro- 
va nel punto esatto del lavoro in cui si era 
invocato Thelp. 

Molto positiva anche la presenza, fra i 
dischetti di Symphony, di un corso rapido 
ad autoistruzione; il corso presenta alcune 
semplici sessioni operative su Symphony, 
ognuna inerente ad un particolare argo- 
mento. L'utente "esegue" ciò che gli viene 
richiesto e cosi ha la netta sensazione di ciò 
che accade; viene inoltre avvertito di even- 
tuali errori di impostazione, o comunque 
di tentativi di operazione diversi da quelli 
previsti. 

A prescindere da tutto ciò, lavorare con 
Symphony è un vero piacere. L'uso dello 
spreadsheet si apprende subito, un po' me- 
no forse quelli del word processor (specie 
se si c già abituati ad usarne uno diverso) e 
del data base. Una volta imparati i coman- 
di principali, però, si va che è un piacere. 
La cosa fondamentale da tenere a mente è 
che lo spazio di memoria non è illimitato, e 
a furia di riservare spazio qua e là per i vari 
ambienti si corre il rischio di trovarsi un 
po’ slrettini. Per quanto riguarda i grafici, 
la prova di Symphony è sempre avvenuta 
con la scheda IBM, della quale non possia- 
mo non notare la scomodità nell'uso impo- 
sta dal continuo salto da una pagina all'al- 
tra per vedere le figure. Una scheda tipo 


Hercules o Plantronics (come quella usata 
per le foto) è tutta un'altra cosa. A propo- 
sito di foto: come potete notare le scherma- 
te sono tutte in italiano. Infatti abbiamo 
avuto a disposizione dall'importatore, giu- 
sto per il tempo del servizio fotografico, 
una pre-release di Symphony in italiano. 
Dobbiamo dire che il risultato ci è sembra- 
to veramente buono, superiore forse all'a- 
spettativa, e comunque molto serio e pro- 
fessionale. Crediamo che la versione nazio- 
nale, unita alle possibilità di programma- 
zione, possano fare di Symphony uno stru- 
mento utile e potente anche in un ufficio 
con personale inesperto di calcolatori. 

Infine c'è da dire che nonostante tutti gli 
sforzi fatti dalla Lotus per semplificarne al 
massimo l’uso, Symphony è un program- 
ma talmente mastodontico e con talmente 
tante possibilità che lo si può conoscere 
bene solo dopo un lungo tempo di lavoro 
costante. 

Conclusioni 


Siamo finalmente giunti alle conclusio- 
ni. Bene, ci sembra che le valutazioni deb- 
bano essere solo positive. Symphony è un 
programma veramente ben pensato e ben 
realizzato, efficiente, efficace e perfino 
semplice da usare. Certo, non lo si può 
imparare a fondo in due giorni, ma è anche 
vero che si è in grado di cominciare ad 
usarlo in un pomeriggio. 

Riguardo al prezzo, ci sembra più che 
giustificato alla luce delle potenzialità e 
delle prestazioni. L'unica perplessità rela- 
tiva alTutilizzabilità riguarda solo la sezio- 
ne comunicazioni: e non per colpa del pro- 
gramma, ma dell'Italia, che ancora non si 
decide a varare leggi e programmi sulle reti 
di comunicazione. 

Per il resto pensiamo che Symphony sia 
il modello di programma del futuro, o me- 
glio di ciò che le macchine del futuro devo- 
no fare: calcoli, gestione di dati, testi ed 
immagini, scambio di informazioni con al- 
tre macchine. Tutto semplicemente e con 
rapidità, lutto mediante pochi tasti premu- 
ti su un computer da scrivania. MC 


62 


MCmicrocompuler n. 38 - lebbraìo 1985 




• Personal Computer IBM 
■Personal Computer 

Portatile IBM 
I • Personal Computer IBM AT 


Scegliere il tuo PC IBM è facile. 


Dove sceglierlo, 

> 

ormai è ancora piu facile. 

r ==.= = 

1 

PERSONAL COMPUTER 



■bit computerò 


Roma via Flavio Domiziano. 10 - tei. 06.5126700/5138023 
Roma - Via F. Satolli. 55157159 - tei. 06.638609616386146 
Roma - via Tuscolana, 350/350a - tei. 06.7943980 
Roma - via Nemorense. 14/16 - tei. 06.858296 
Roma - viale Jonio. 3331335 - tei. 06.81 70632 
PUNTI DI DIMOSTRAZIONE: 

Gaeta ■ lungomare Caboto. 74 - tei. 0771.470168 
Latina - via A. Diaz, 14 - tei. 0773.495285 
Viterbo - via Palmanova. 12c - tei. 0761.223977 


...il tuo computer shop 
dietro l’angolo. 


COMPUTER 

neb 


Caratteristiche 



Melbourne Drow 

per Spectrum 


di Mau rizio Berga mi 


Melbourne Draw è una sofisticata utility 
per disegnare, scritta per lo Spectrum 48 K 
da Philip Mitchell, un programmatore cono- 
sciuto praticamente da tutti i possessori di 
questo computer per essere stato l'autore 
deH'Hobbit. il popolarissimo gioco di avven- 
tura tratto dall'omonima libro di Tolkicn. 


L 'obiettivo principale di Melbourne Draw è 
quello di permettere la creazione e l'archi- 
viazione di schermate grafiche a colori con 
la maggiore facilità possibile: il programma 
consente inoltre di definire e salvare come 
file di dati i 21 caratteri grafici di cui è 
dotato lo Spectrum. 


Appena caricato, Melbourne Draw va 
in autorun. presentando un menu tramite 
il quale si può iniziare a disegnare — sia 
sullo schermo vuoto che su una figura pre- 
cedentemente caricata in memoria — op- 
pure salvare su nastro la schermata o gli 
UDG già definiti. L'impiego dei microdri- 
ve non è previsto, tuttavia è possibile mo- 
dificare con facilità la parte in Basic del 
programma, accedendovi con l'opzione 
(e), in modo da effettuare i salvataggi sulle 
unità a microcartuccia. 

Premendo il tasto P si può cominciare il 
disegno. La prima cosa da osservare è che 
esso va eseguito praticamente in due fasi; 
nella prima si agisce sui singoli pixel, men- 
tre nella seconda si definiscono gli attribu- 
ti. 

Melbourne Draw, infatti, non consente 
di disegnare immediatamente la figura a 
colori; si può definire un colore globale di 
1NK e uno di PAPER, ma non è possibile 
disegnare ad esempio cinque pixel in rosso 
e poi subito altri cinque in verde: tutto il 
disegno viene eseguito infatti senza modifi- 
care l’area degli attributi. Successivamente 
le varie parti possono essere colorate sce- 
gliendo gli attributi dei singoli caratteri. 

La cosa non è affatto una limitazione 
come potrebbe sembrare; visti i problemi 
che presenta lo Spectrum in termini di riso- 
luzione di colore si tratta, anzi, della mi- 
gliore soluzione possibile. 

I modi di editing, dunque, sono due: nel 
primo (SCREEN) si influenza l'area di 
schermo, mentre nel secondo (ATTR) 
quella degli attributi. In entrambi i modi si 
agisce tramite un cursore, rappresentato 
da un pixel o da un carattere lampeggiante. 



64 


MCmicrocomputer n. 38 - febbraio 1985 





che può essere spostato con i tasti 
Q,W,E,A.D,Z,X,C nelle quattro direzioni 
cardinali ed in diagonale. 

Il cursore si può trovare in uno di questi 
quattro stati: SKIP. SET. RESET ed IN- 
VERT. Nel primo stato si muove senza 
modificare il disegno sottostante, nei se- 
condi tre lascia invece una traccia che di- 
pende dallo stato attivo: in SET "accende” 
i pixel sui quali passa, in RESET li “spe- 
gne". in INVERT infine accende quelli 
spenti e viceversa. Questo ovviamente se ci 
si trova in modo SCREEN; in modo 
ATTR il cursore non disegna, ma colora 
carattere per carattere. 

Sia in modo SCREEN che in ATTR le 
ultime due linee dello schermo formano la 
"information window”, una zona che con- 
tiene una serie di informazioni, tra le quali 
la posizione del cursore, relative allo stato 
corrente del programma. 

La information window può essere spo- 
stata in alto per permettere di disegnare 
anche nella zona che normalmente occupa, 
in ogni caso essa non influenza il disegno, 
in quanto il programma non agisce diretta- 
mente sulla pagina video, ma su una sua 
copia posizionata in memoria a partire 
dall'indirizzo 32768. 

Per aiutare il disegnatore a tenere conto 
delle limitazioni relative all'uso del colore, 
in modo SCREEN si può disegnare su due 
griglie, formate da blocchi grandi ciascuno 
una posizione carattere, oltre che sulla 
normale pagina bianca. 

L'effetto griglia viene ottenuto alternan- 
do un carattere normale ad uno BRIGHT: 
usando la prima griglia non si vedono in 
pratica gli attributi ed il programma usa in 


Produttore: 

Melbourne House 
Church Yard, Tring 
Herlfordshire HP 23 5LV U.K. 



ogni caso un INK nero ed un PAPER 
bianco, mentre con la seconda è possibile 
vedere la figura con i suoi colori. La solu- 
zione più consigliabile è quella di disegnare 
sulla prima griglia, disattivandola di tanto 
in tanto per vedere come si presenta la 
figura con gli attributi già definiti. 

Purtroppo l'unica forma di disegno con- 
sentita da Melbourne Draw è quella a ma- 
no libera; il programma manca infatti to- 
talmente di qualsiasi funzione che permet- 
ta di ottenere almeno le forme geometriche 
elementari, come le linee ed i cerchi. 

In molti casi ciò costituisce un problema 
piuttosto grave: per tracciare anche un 


semplice cerchio bisogna possedere una via 
di mezzo tra l'abilità di Giotto e la pazien- 
za di Giobbe! 

Una buona idea può essere allora quella 
di "abbozzare" il disegno in Basic, utiliz- 
zando le normali DRAW e CIRCLE, sal- 
varlo su nastro e poi caricarlo su Melbour- 
ne Draw per completarlo e rifinirlo. Nulla 
impedisce poi di effettuare il lavoro preli- 
minare con un'altra utility per il disegno, 
come il GraphicComp pubblicato nella ru- 
brica dedicata al software Spectrum sul 
numero di luglio/agosto; in questo modo 
la fatica è davvero minima. 

Per farsi perdonare almeno parzialmen- 
te questa mancanza Melbourne Draw pos- 
siede una potente e rapidissima funzione 
FILL, che effettua la campitura di qualsia- 
si area chiusa entro la quale si trovi il cur- 
sore. Prima di usarla é necessario verificare 
che la zona da riempire sia effettivamente 
chiusa: basta un buco, per quanto minu- 
scolo. sul bordo perché la routine prosegua 
la sua opera anche all’esterno, con risultati 
spesso irreversibili. 

Molto divertente, anche se di utilità ab- 
bastanza ridotta, è poi la funzione di RE- 
VERSE, che ruota lo schermo intorno 
all’asse verticale. 

Per poter realizzare una figura precisa 
anche nei minimi dettagli Melbourne 
Draw consente l'ingrandimento del dise- 
gno di un fattore 4 o di un fattore 16. In 
questo caso un apposito indicatore, pre- 
sente nella information window. consente 
di vedere la zona sulla quale si sta lavoran- 
do; il passaggio da una zona all'altra avvie- 
ne automaticamente quando si sposta il 
cursore. 



MCmicrocomputer n. 38 - febbraio 1985 


65 





L'ingrandimento dello schermo è possi- 
bile sia quando si agisce sui singoli pixel 
che sugli attributi; in modo ATTR, tutta- 
via, oltre ad essere meno utile, provoca un 
certo fastidio a causa del lampeggio irrego- 
lare del cursore. 

Un'altra funzione molto interessante è 
quella di scroti, che fa muovere la zona 
schermo o quella degli attributi in una 
qualsiasi delle direzioni di spostamento del 
cursore. 

Lo scroll viene effettuato con la tecnica 
del wrap-around; in altre parole lo scher- 
mo viene considerato come se fosse una 
superficie sferica, e quello che esce da una 
parte rientra dalla parte opposta. 

L'ultima possibilità offerta da Melbour- 
ne Draw nella manipolazione dei disegni è 
l'espansione o la riduzione della figura, da 
non confondere con l'ingrandimento di cui 


abbiamo parlato sopra e che serve a facili- 
tare la definizione dei particolari. Le ope- 
razioni di espansione o di riduzione tra 
l'altro sono irreversibili, quindi, prima di 
tentarle, è un'utile precauzione salvare l'o- 
riginale su nastro, per non dover rifare 
lutto da capo in caso di ripensamenti. 

La più utile tra le due funzioni è sicura- 
mente quella di riduzione, che può essere 
sfruttata, ad esempio, per ottenere con 
maggiore precisione scritte o marchi parti- 
colari. disegnandoli a dimensioni più gran- 
di del naturale per poi rimpiccolirli. 

Fino ad ora abbiamo sempre parlato in 
termini di disegno da eseguire a mano libe- 
ra; vediamo ora invece come è possibile 
aggiungere delle scritte alle figure create. 

Sotto questo punto di vista Melbourne 
Draw non offre poi molto; il set di caratteri 
a disposizione è quello standard dello 


Spectrum e le posizioni di stampa sono 
quelle normali. L'unica differenza rispetto 
a quello che si 1 otterrebbe con un normale 
PRINT è la possibilità di scrivere nelle 
quattro direzioni (alto, basso, destra e sini- 
stra), con i caratteri orientati nel verso in 
cui si scrive. 

Interessante invece è l'uso che si può fare 
dei caratteri grafici: ognuno dei 760 carat- 
teri di 8 x 8 pixel che formano lo schermo 
può essere trasferito in un UDG. In questo 
modo si può definire una parte del disegno 
come una serie di caratteri grafici, che poi 
possono essere stampati su un'altra parte 
dello schermo. Ciò. in unione con la possi- 
bilità di scrollare il disegno, premette di 
simulare la funzione di copy, c in pratica, 
di spostare pezzi del disegno da una zona 
all'altra. 

Come UDG editor vero e proprio, inve- 
ce, il programma non é, tutto sommato, 
eccessivamente efficace; per questo scopo 
particolare sono assai più indicate le utility 
specifiche, come quella pubblicata in Tut- 
toSpectrum di maggio '84. 

Conclusioni 


Pur essendo ormai abbastanza vecchio. 
Melbourne Draw rimane con ogni proba- 
bilità il migliore programma per disegnare 
disponibile per lo Spectrum. 

La sua caratteristica principale risiede 
nel modo in cui permette di controllare gli 
attributi, ideale per un perfetto controllo 
del colore. 

Peccato che sia incredibilmente carente 
dal punto di vista delle funzioni di base: 
riteniamo che un package grafico debba 
obbligatoriamente possedere dei comandi 
in grado di tracciare automaticamente al- 
meno linee e cerchi (ma rettangoli ed archi 
certo non guasterebbero). 

Le possibilità che offre sembrano co- 
munque più che in grado di compensare le 
sue lacune, specie considerando che ad esse 
risulta abbastanza facile porre rimedio 
preparando gli elementi fondamentali del 
disegno direttamente da Basic. MC 


Elenco dei comandi disponibili 

Tasto Funzione 

Q cursore in alto a sinistra 

W cursore In alto 

E cursore in alto a destra 

A cursore a sinistra 

D cursore a destra 

Z cursore in basso a sinistra 

X cursore in basso 

C cursore in basso a destra 

S modifica il pixel sul quale si 

trova il cursore in base allo 
stato di quest'ultimo 
M ingrandisce lo schermo 

N riduce lo schermo 

B cambia il colore di BORDER 

0-7 cambia il colore di INK 

SHIFT 0-7 cambia il colore di PAPER 

SHIFT B attiva o disattiva la condizio- 
ne di BRIGHT 

SHIFT V attiva o disattiva la condizio- 
ne di FLASH 

SHIFT R pulisce lo schermo e/o gli at- 
tributi: 

P= PAPER 


Funzione 
B = ENTRAMBI 
S= SCHERMO 
A = TUTTI 

e lo stato RESET 
e lo stato INVERT 
e lo stato SET 
e lo stato SKIP 
permette di passare dal mo- 
do SCREEN al modo ATTR e 
viceversa 

attiva lo scroll dello schermo 
attiva il modo TEXT 
ridefinisce un carattere grafi- 


SHIFT F riempie ui 


a dello scher- 


G attiva o disattiva la griglia 1 

SHIFT G attiva o disattiva la griglia 2 

SHIFT 9 muove la information window 
SHIFT L ruota lo schermo 
SHIFT 8 espande o riduce il disegno 
CAPS SHIFT permette di tornare al menu 
+ principale o di uscire dal 

SPACE modo TEXT 


MCmicrocomputer n. 38 - febbraio 1985 





Nel mondo 
dei Personal Computers c’è 

6^32© PCIine 


Periferiche 


Una gamma completa di prodotti per: 

• aumentare 

la capacità delle memorie di massa 

• configurare 

reti locali e comunicazioni a distanza 

• realizzare 

sistemi grafici 

• aggiungere 

memorie e funzioni I/O 


per personal computers 


• stampare 

a matrice e a margherita 

• leggere 

codici a barre e OCR 

con i vostri personal 
computers IBM, Olivetti, 
ITT, Italtel, Ericsson, 
Sperry, etc. 


M 320 

TELCOM s.r.l. - 20148 Milano 

Via M, Civitali, 75 - Tel. 02/4047648 

(3 linee rie. aut.) - Telex 335654 TELCOM I 


I prodotti PC Line sono promossi presso 
tutti i rivenditori di personal computers da 
ARGE - Genova - Tel. 010/41 .38.04 
DATATEC - Roma - Tel. 06/35 10.23 
D.D.P. - Torino - Tel. 011/65.05.185 
LABEL - Firenze - Tel. 055/35.04.71 
SITAL - Padova - Tel. 049/63.75.61 




Hondic 

Cole Result 

Uno spreadsheet per il CBM 64 

di Leo Sorge 


Ad Mirti ilei piccolo silurino, che consta ili 
sole 41) colonne I contro uno standard di SO / . 
la tastiera professionale del Commodore 64 
e i 64K di Rum interna ne fanno uno stru- 
mento di lavoro economico e pratico, e ades- 
so ( sembra I anche un po' più affidabile, dati 
gli sforzi compiuti dalla Commodore nello 
spinoso problema dell'assistenza tecnica: è 
quindi una macchina adatta anche per chi 
vuole entrare nell'informatica del lavoro, 
che prevede l’uso di svariati programmi di 
uso comune che sostituiscono le macchine da 
scrivere, gli schedari e le altre parti deUuffi- 

Seguendo questa lìnea di pensiero, un 
unno fa t MC n. 28 ) abbiamo presentato 
E Easy Script, un comodo wordprocessor per 
il trattamento di testi e tabelle: l'argomento 
è stato poi approfondilo in un secondo, più 
recente articolo f MC n. 33/ che spiegava 
come sfruttare la porta parallela compatibi- 
le Centronics messa a disposizione via soft- 
ware dal programma stesso. 

Adesso vi proponiamo il Cale Result. un 
tabellone elettronico, elicgli inglesi chiama- 
no spreadsheet I letteralmente "foglio este- 
so", sottintendendone Ut matrice eleltroni- 

Lo spreadsheet serve un po' a tutto, dal 
conto della spesa alla pianificazione di 
un 'attività o di un 'azienda. 

Questo programma è stato messo a punto 


dalla casa svedese Handic, che l tra la ver- 
sione Advanced e quella Easy, cui dedichia- 
mo un riquadro) ne ha venduti oltre 
250.000. un successo di risonanza mondiale. 

Nonostante sia completato da numerose 
schermate e da parecchi esempi, questo arti- 
colo non va inteso come sostituto del manua- 


le. bensì come pura e semplice — seppure 
approfondila — presentazione de! prodotto: 
lo scopo è offrire al lettore un immediata 
immagine delle caratteristiche salienti del 
prodotto, in modo da favorirne una corretta 
valuu i rapporto alle proprie esigen- 


MCmicrocomputer n. 38 - lebbraio 1985 



Il sct-up 

La confezione contiene un esauriente 
manuale in lingua inglese, una cartuccia e 
un disco master: voi dovete aggiungere so- 
lamente un dischetto vuoto ma già format- 
tato. La priva volta è sempre più difficile, e 
il Cale Restili non sfugge a questa regola: 
fissare tutti i parametri è cosa lunga^enoio- 

sommi capi le singole operazioni, comun- 
que dettagliale sul manuale. 

Inizialmente dovete accendere la stam- 
pante (se la avete) e l'unità a dischi, la- 
sciando spento il computer. A questo pun- 
to inserite la cartuccia nello slot posteriore 
del 64: vi farà eco il floppy disc. con alcuni 
rumori dovuti ad un collegamento hard- 

manderà un messaggio con il nome del 
programma e accederà al disco, causando i 
soliti rumori: non trovando niente scriverà 
sullo schermo il messaggio “INSERT 
DISK", ovvero inserisci il disco master che 
viene dato nella confezione della versione 
avanzata del programma (ricordiamo che 
c'c anche una versione semplificata, cui 
accenniamo in un riquadro a parte). Do- 
vrete allora eseguire l'istruzione in un bre- 
ve tempo, pena un ulteriore rallentamento 

rà a carica re° le' par fi ma ncTnt L Pf ° VVe ' 

Le lasi di caricamento che seguono ora 

schetto vuoto ma formattato viene confi- 
apportuna. tramite suc- 
ti dal disco master (ope- 
razione questa laboriosissima); poi il com- 
puter chiede informazioni sul linguaggio 
dell'utente (in modo da caricare sul disco 



diretto — diremmo quasi con un menu 0 
— sono le seguenti: 

F7 per il menu principale 
F6 per l’hardcopy 
F3 per il Goto 

F5 per gli schermi di aiuto (help) 

Chi conosce l'inglese non troverà nessuna 
difficoltà nel gestire il programma, mentre 
gli altri dovranno perdere un po' di tempo 
affidandosi agli schermi di help, non sem- 
pre chiarissimi, che fortunatamente sono 
disponibili in ben otto lingue tra cui l'ita- 
liano. Per le prime volte, dunque, premete 
F7 e subito dopo F5: \ ’ 


di lavoro solo gli help necessari), sulla di- 
sposizione dello schermo (i vari colori per 
sfondo, bordo e scritto), sulla formattazio- 
ne di eventuali pagine testo da inviare alla 
stampante, e converte tutti questi dati in 

che viene memorizzato sul dischetto di la- 

A questo punto siete pronti per lavorare 
con il Cale Restili. 

È evidente che questa operazione viene 
realizzata solo la prima volta che sì usa il 
programma: per tutte le successive basterà 
inserire il disco di lavoro già preparato, c il 
computer si regolerà di conseguenza, senza 
chiedervi nuovamente tutti i parametri. 

La struttura 

Cale Result è un programma del tipo 
menu-driven. ovvero guidato compieta- 
mente da menu: ciò vuol dire che le varie 
funzioni sono ottenibili premendo una suc- 
cessione di tasti ben precisa, avendo al più 
da specificare alcune informazioni aggiun- 
tive (nomi dei file: gamma di interesse, etc) 
il < return >. 

nodo 


che. come al solito, le funzioni sono imme- 
diate; per lavorare con il disco si preme D; 
poi per salvare il file si usa S. per caricarlo 
L (da Load). per avere il directory C (da 
Catalog), e cosi via. Le funzioni più labo- 
riose andranno invece studiate sul manua- 
le e approfondite sul computer. 


se in un articolo non è possibile compattare 
tutte le informazioni, pensiamo comunque 
di potervene illustrare le peculiarità mani- 

II foglio elettronico è di grandi dimen- 
sioni: 64 righe di 255 colonne ciascuna, 
numerate per le ordinate ma indicate da 
lettere per le ascisse, delle quali lo schermo 
mostra un numero decisamente ristretto 
(all’accensione è 21 x 4. ma la larghezza di 
ogni colonna è variabile tra 4 e 18 caratte- 
ri). La possibilità più interessante del pro- 
gramma é però la capacità di gestire fino a 



MCmicrocomputer n. 38 - febbraio 1985 




32 pagine di questo tipo, ovviamente con 
un alacre aiuto del disco: ciò permette di 
definire il Cale Result come "spreadsheet 
tridimensionale", dato che la stessa tabel- 
la. comunque estesa, è utilizzabile più volte 
e con nomi diversi, proprio come se la 
tabella fosse tridimensionale. 

Ognuna della caselle può essere usata 
per immagazzinare un'etichetta (label) o 
nome, oppure una formula che al limite è 
direttamente un valore numerico. Per di- 
re al computer che vogliamo memorizza- 
re un'etichetta, basta andare con il curso- 
re sulla casella che ci interessa e poi pre- 
mere la barra spaziatrice, seguita dal no- 
me che intendiamo usare. 

Nel caso quella casella abbia una pre- 
cedente definizione, si dovrà andarci con 
il cursore, cancellare la vecchia etichetta 
(premendo F7 e B) e metterci la nuova 
preceduta da Shift 4- Space. 

Per inserire un numero o una formula 
basta farlo direttamente: se sì desidera 
operare sul contenuto di un'altra casella 
precedentemente definita, basta usarne 
la coordinata come variabile, per cui po- 
sta A3 pari a 300, se vogliamo che A4 
contenga costantemente un quarto del 
contenuto di A3 dovremo metterci 

A3/4 

com'era d'altronde prevedibile. 

Per muoversi sul tabellone si può tran- 
quillamente fruire dei tasti cursore: se 
serve un grosso spostamento si può inve- 
ce usare la combinazione 



F7 F3 < casella > < return > 
che equivale ad un Goto <casella>. Ad 
esempio, volendo trasferire il controllo alla 
posizione AA34 si dovrà impostare 

F7 F3 AA34 < return >. 

In un foglio di tali dimensioni è abba- 
stanza facile perdersi. Due delle cose più 
utili nella gestione dei dati sullo schermo 
sono la possibilità di dividere in due la 
pagina grafica, e l'ulteriore capacità di a- 
prire finestre (anch'esse suddivisibili in due 
sottofinestre ed eventualmente con scroll 
sincronizzato). 

La prima possibilità si ottiene impostan- 
do 

F7 E S e poi V o H e < return > 

(E = edit: S = split: V = vcrtical; H = 
horizontal) 


ed è molto utile non appena la tabella si 
estende in almeno una delle due direzioni 
possibili. Dato che ogni tabella ha delle 
intestazioni sulle ascisse e delle altre inte- 
stazioni sulle ordinate (ad esempio, in un 
bilancio, rispettivamente i mesi e le voci del 
bilancio stesso), inoltrandosi nel tabellone 
si perdono questi riferimenti: la suddivisio- 
ne dello schermo ci permette di tener ferme 
le prime due righe o colonne con i riferi- 
menti, mantenendo tutte le capacità dello 
schermo vero e proprio nella restante zona 
di lavoro. Questa situazione è mostrata 
nelle fotografie accluse all'articolo. 

Grande è anche l’utilità delle finestre, 
che lavorano come un secondo schermo, e 
sono quindi suddivisibili in due partì (an- 


Calc Result Easy 

Di questo programma esiste anche la 
versione semplificata (Easy, ovvero faci- 
le. in inglese), sempre su cartuccia, al 
prezzo di 125.000 lire più IVA. La diffe- 
renza di prezzo non è poi cosi grande, per 
cui sorge spontanea la domanda: convie- 
ne prendere la Easy? La risposta non è 
immediata. Le principali diltercnze tra i 
due programmi sono le 32 pagine e gli 
schermi di aiuto, entrambi presenti nella 
sola versione avanzata. Nel primo caso la 



perdita non è eccessiva, dato che la gran- 
de maggioranza degli utenti avrebbe co- 
munque lavorato prevalentemente con 
una sola pagina, mentre crediamo anco- 
ra più utile la seconda: è molto scomodo 
fare a meno di un comodo riferimento 
alle opzioni previste dai vari menu. Si 
tratta quindi di fare una scelta pratica, 
che a noi sembra praticamente obbligata 
a favore della versione estesa. 

Il principale pregio della versione sem- 
plificata è però quello di consentire la 
gestione delle informazioni su nastro, 
senza quindi dover ricorrere all'unità a 



Schermala Mia vermine lucile. Come vaine, dal menu 
principale che appare nella seconda riga manca del 



dischi (che attualmente costa più dell'ac- 
coppiata computer + registratore): con 
un hardware ridotto al minimo si può 
quindi fruire di una pagina di dimensioni 
254 x 63, ad un prezzo ridotto rispetto 
alla versione per disco. Easy, quindi, per 
chi non ha il floppy. 

Andiamo comunque a vedere le altre 
differenze principali. Le finestre e la sud- 
divisione dello schermo, che erano state 
concepite principalmente per confronta- 
re tra loro parti di un esteso tabellone 
(faticosamente riprodotto in un display a 
40 colonne), vengono qui a mancare: e 
con loro le varie funzioni che muovono il 
cursore tra le varie suddivisioni dello 
schermo, ovvero che sincronizzano lo 
scroll delle varie parti. Anche la gestione 
dei comandi e dei menu c alterata: per 
salvare i dati, ad esempio, bisogna usare 
la procedura 

F7T 

ove T sta per Transport (trasferisci). A 
questo punto vi viene chiesto il supporto: 

Disk, Tape 

cui voi dovete rispondere con D o T e poi 
indicare l'operazione e il nome del file. 

Il manuale é ovviamente lo stesso della 
versione superiore, in un’edizione più e- 
conomica e con le opportune correzioni; 
ne conserva quindi la struttura in tre par- 
ti, delle quali è assai utile quella di trai- 
ning. 


70 


MCmicrocomputer n. 38 - febbraio 1985 





che stavolta o orizzontali o verticali), con 
in più la possibilità di avere lo scroll sincro- 
nizzato (premendo F4) delle due parti della 
finestra: questa possibilità si abilita con 
F7 E W < return > 

specificando poi quale zona si voglia nella 
finestra, e si mostra fondamentale per po- 
ter effettuare dei confronti. 

Un'ultima cosa da sottolineare è la ge- 
stione di istogrammi: specificando quale 
riga o colonna (o quale sua parte) si vuol 
vedere in tale forma, basta richiamare il 
menu di Edit e la sua funzione Grafica con 
i comandi 
F7 E G < return > 

e specificare la gamma di interesse. L'ulte- 
riore funzione di hardcopy ottenibile pre- 
mendo F6 permette inoltre di avere una 




copia su carta delPistogramma. accrescen- 
done l'utilità. Aggiungiamo alcune note 
per mostrare un'ulteriore possibilità offer- 
ta da questo spreadsheet: la programmabi- 
lità. In svariati casi, infatti, si ha a che fare 
con tabelle di percentuali variabili a secon- 
da della quantità su cui si opera (tipico 
esempio: le tasse per fasce di reddito), per 
cui si rende necessario discriminare le varie 
operazioni. Per questa necessità il Cale Re- 
sult mette a disposizione la funzione 

IF... THEN... ELSE. 

che lavora come negli usuali linguaggi di 
programmazione, e può sfruttare anche gli 
operatori logici 

AND, OR e NOT 

Vediamo un semplice esempio teorico. 
Mettiamo il reddito del mese nella casella 


Al. e quello totale dell'anno in A2. Se A2 
(che ovviamente già comprende A I ) è su- 
periore ad un limite che nell'esempio po- 
niamo pari ad I milione, allora le tasse sul 
reddito del mese salgono al 27%, altrimenti 
rimangono (poniamo) al 24%. Volendo le 
tasse del mese nella casella Bl dovremo 
andare con il cursore in questa posizione e 
scrivere la seguente espressione: 

(IF A2> 1000000 THEN 24 ELSE 27) 
il che automaticamente seleziona la per- 
centuale desiderata. 

Un'altra funzione particolarmente utile 
è quella di somma degli elementi di una 
colonna: si chiama — guarda un po' ! — 
SUM. ed ha la seguente sintassi: 

SUM (< primo elemento >: < ultimo ele- 
mento > ) 

e funziona non solo sulla singola colonna 
(es.: SUM (B2:B 1 8)) ma anche su più d'u- 
na (es.: SUM (B2:CI3)). 

Esistono molte altre funzioni: citiamo 
MIN (per trovare il minimo contenuto del- 
le caselle indicate tra parentesi) e il suo 
inverso MAX. un contatore COUNT, ed 
infine RND ed ABS che funzionano come 


Conclusioni 


La nostra impressione dopo l'uso è di 
un'elevata versatilità tramite ia suddivisio- 
ne dello schermo e le finestre con scroll 
simultaneo, che compensano in gran parte 
l'annoso problema delle sole 40 colonne 
disponibili sul 64. L’unico problema da noi 
riscontrato riguarda la parziale cancella- 
zione del display in occasione di accessi al 
disco quando stiamo operando su finestre, 
problema del tutto collaterale e di nessun 
effetto pratico (premendo F7 si torna alla 
situazione iniziale). 

Il programma è particolarmente adatto 
per contabilità e pianificazioni individuali, 
nel qual caso l'utente non ha bisogno di 
sfruttarne le caratteristiche al massimo: 
ovviamente più l'uso è impegnativo, mag- 
giore è il tempo di apprendimento necessa- 
rio. Il prezzo è sicuramente appetibile, spe- 
cie nella versione semplificata e comunque 
di certo motivato dalle caratteristiche. In 
definitiva si tratta di una proposta che non 
mancherà di interessare una vasta utenza, 
e non solo nel settore professionale, mt 



MCmicrocomputer n. 38 - febbraio 1985 


71 



PER IL TUO COMPUTER - 

GIOCHI E UTILITY SU CASSETTA! 



w w 





Ogni anno circa due milioni di persone 
visitano la Fiera Campionaria di Milano 
Dal 1 985, ad attenderle, ci sarà 
COMPUTER SHOW 
il nuovo Salone interamente dedicato 
aH’informatica per i giovani, la scuola, 
la famiglia moderna. Sicuramente sarà 
il più grande appuntamento dell’anno. 


Perché non 


Segreterìa: 

E.P.I. - ENTE PROMOZIONE INFORMATICA 
Via Marochetti, 27 - 20139 Milano 
Telefoni (021 56.93.973 - 53.98.267 


esserci? 



la mostra per: 

l'hobby 
la didattica 
i videogiochi 


AMSTRAD CPC 464 



e unici 


iyte di copertura 


^ per ogni faccia disco 
con possibilità di unire due 
Drive per ogni controller. 
Sistema operativo per floppy 
in CP/M 2.2 e AMSDOS 
(Digital Research ine.) 

Peso kg. 1,6. Dischi 3 pollici. 


Personal Computer completo. 
Monitor a colori o a fosfori verdi 
Basic esteso velocissimo. 

Grafica in alta soluzione (640x200). 
80 colonne di scrittura. 


A Stampa ad impatto 
w monodirezionale. 

Matrice caratteri 5x7. 
Velocità 50 caratteri 
ra al secondo. 


con velocità di lettura seleziona 
Tastiera professionale (74 tasti). 
27 colori utilizzabilL 

urta Nuova, 14 - 24100 i 


Con Monitor monocrom L 739.000 + iva 
Con Monitor a colori L 1.030 000 + iva 

ESCLUSIVISTA PER L'ITALIA 

• Tel. 035/221031 (5 linee r.a.) 




Un tentativo 
di classificazione 

Nei numeri scorsi abbiamo iniziato una 
serie di articoli intitolati "ricominciamo da 
capo", tendenti a recuperare alla Compu- 
ter Grafica anche i nuovi arrivati della 
Computermania. 

Tentiamo ora una Classificazione della 
Computer Grafica, ovvero identificando e 
raggruppando logicamente le applicazioni, 
tentiamo di costruire una "griglia" di rife- 
rimento attraverso la quale "far passare" 
qualsiasi problematica per collocarla cor- 
rettamente nella sua casella, codificandola. 

Abbiamo verificato la validità della clas- 
sificazione cosi costruita applicandola a 
tutti gli articoli di Computer Grafica scritti 
su MCmicrocomputer a partire dal primo 
numero. Il risultato di questo lavoro si è 
anche concretizzato in un dischetto già di- 
sponibile per l'Apple II (ci sarà in seguito 
anche una versione per IBM PC) in cui 
sono raccolti, organizzati in una unica 
struttura, e allineati come specifiche di 
programmazione, 27 programmi scelti tra 
quelli pubblicati su MC. 

Scopo di tale dischetto (richiedibile con 
le modalità riportate a pag. 76) è quello di 
fornire una panoramica completa delle pos- 
sibilità grafiche di un Personal Computer, e 
soprattutto di fornire a tutti uno strumento 
di studio per implementazioni e applicazioni 
personali. 

Ogni programma, infatti, rispetta una 
stessa struttura logica specificata nel pro- 
gramma iniziale e contiene nel suo interno 
tutte le spiegazioni per poterlo manipolare 
a proprio piacimento. Tutti i programmi 
sono stati descritti nei vari numeri arretrati 
di MC, ai quali rimandiamo chi avesse 
bisogno di qualunque chiarimento. 

Computer grafica 
come supporto 
dell'informatica tradizionale 
oppure 

come materia a sé stante 

La Computer Grafica abbraccia ormai 
una gamma di applicazioni talmente vasta 
da rendere difficile una trattazione organi- 
ca e del tutto scissa dall'applicazione stes- 
sa. Si pensi come sono differenti le applica- 
zioni in campo medico da quelle in campo 
cinematografico/televisivo, oppure quelle 
nel campo giochi da quelle nel campo della 
progettazione tecnica. 

Una prima classificazione può essere 
quella di separare le applicazioni in cui la 


C.G. è di supporto ad altre funzioni infor- 
matiche da quelle in cui vive, per cosi dire, 
di vita propria. Un grafico ricavato dalla 
elaborazione dei dati rilevati in una indagi- 
ne statistica permette una lettura più rapi- 
da del fenomeno rilevato, ma in nessun 
caso Io influenza. 

Al contrario un video gioco tipo simula- 
tore di volo ha senso solo in quanto grafi- 
co, oppure un programma di Progettazio- 
ne tecnica Stradale ha senso solo in quanto 
produce come risultato finale il progetto su 
carta della strada. 

Né si può dire che la Computer Grafica 
come accessorio della informatica tradi- 
zionale rappresenti una attività di serie B 
rispetto a questa. 

Si può considerare la Computer Grafica 
come "quarta dimensione" dell'informati- 
ca. Nel senso che ad ogni dato trattato si 


può attribuire oltre ai significati e ai valori 
tradizionali, anche un valore grafico di pa- 
ri dignità dei precedenti. Si arriverà proba- 
bilmente alla "quinta dimensione" quando 
si attribuirà il valore "suono" e alla "sesta" 
il valore "odore". 

Queste potrebbero sembrare fantasie, 
ma lo sembreranno di meno se si pensa alla 
filosofia che sta alla base dei nuovi prodot- 
ti software integrati che girano sui PC 16 
bit. 

Negli archivi dei nuovi prodotti (parlo 
del SIMPHONY, del FRAMEWORK, 
della famiglia DBase, e anche della fami- 
glia ASSISTANT dell’IBM) il dato assu- 
me varie forme. Lo si può trattare come 
dato numerico, come dato da sottoporre 
ad analisi statistiche, come dato da "muo- 
vere" all'interno dell'archivio o anche al di 
fuori dell'archivio (funzione COMM del 



MCmicrocomputer n. 38 - febbraio 1985 


75 



SIMPHONY) o. quello di cui stiamo par- 
lando. come dato da visualizzare grafica- 
mente. 

Invece la Computer Grafica a sé stante 
quanto è differente dalla informatica tradi- 
zionale? 

Quante e quali conoscenze classiche so- 
no “riutilizzabili" da chi passa a trattare 
problematiche di Computer Grafica? 

Anche in questo caso non si può dare 
una risposta precisa in quanto dipende dal- 
l'applicazione. 

Se è una applicazione in cui prevale uno 
specifico mezzo tecnico (si pensi alla realiz- 
zazione di una animazione per uno spot 
per una pubblicità televisiva eseguita me- 
diante sistema videografico digitalizzatore 
interfacciatocon macchina da ripresa cine- 
matografica) è più facile che sia il Grafico 
Pubblicitario a imparare la nuova tecnica 
piuttosto che sia l'informatico a diventare 
un disegnatore. 

Al contrario una applicazione tipo quel- 
la citata di Progettazione Stradale presenta 
aspetti informatici più tradizionali, come 
gestione archivi, esecuzione di calcoli. I- 
noltre la parte grafica della procedura ri- 
guarda solo la forma di visualizzazione del 
risultato finale. 

Ad esempio se stiamo realizzando un 
programma grafico con uscita su plotter il 
nostro lavoro non viene che minimamente 
condizionato in quanto il plotter é visto dal 
computer e quindi dal programma come 
una qualsiasi stampante, al punto che po- 
tremmo finire il lavoro c anche testarlo 
senza neanche collcgare un plotter. 

Leggeremo i comandi stampandoli nella 
sequenza di uscita dalla stampante/plouer 
e ne controlleremo la validità formale, an- 
che se non vediamo il risultato reale. 

Ovvero invece di vedere un cerchio ve- 
dremo una sequenza di caratteri del tipo 
“0200, 2000, 450....". Non è che sia una 
modalità comoda, ma ad esempio se ab- 
biamo una sola interfaccia per le due peri- 
feriche conviene fare cosi anziché collcgare 
e scollegare in continuazione. 

La classificazione 

Nei vari numeri di MC abbiamo sempre 
presentalo programmi di piccole dimen- 
sioni in quanto la finalità che ci si è posta é 
stata quella di suggerire problematiche e 
soluzioni anziché programmi da copiare 
passivamente. 

Con questo limite non abbiamo quasi 
mai affrontato programmi con gestione di 
archivi, programmi di videogiochi, anzi 
abbiamo spesso pubblicato programmi 
che producono un solo disegno. 

Un'altra tematica che non abbiamo 
spesso affrontato è quella del colore, che 
pur essendo un elemento importante per la 
Computer Grafica non ne altera le proble- 
matiche e le soluzioni. 

Un'altra caratteristica è stata quella di 
lasciare aperto il programma sia all’inseri- 
mcnto di altri dati scelti dal lettore, sia 
sotto forma di formule che di dati alfanu- 



II minifloppy con i 27 programmi grafici per Apple é disponibile presso la redazione al 
prezzo di lire 30.000. Per l’ordinazione vedere pag. 1 53. 


76 


MCmicrocomputer n 38 - febbraio 1985 






ELENCO DEI PROGRAMMI E LORO CODIFICAZIONE 


P r . Nome Cod . 


Des 


, /Problem. Trattato 


1 PIANTCS 

2 TRATSCL 

3 CIRCUIT 

4 FILISCL 

5 TRAIETT 

6 BISETTR 

7 TRETRID 
B DIECSPI 
9 DUEPAGN 

10 FAMCURV 

1 1 DODECDR 

12 TRIGONO 

13 DISRETT 

14 CERCHIO 

15 ANIMAZI 

16 NOVEMOD 

17 CICLUNO 
IB PENTAGN 

19 MERLETT 

20 INTERAT 

21 CASETTA 

22 ELLISSD 

23 PARABLD 

24 BERSAGL 

25 FUNZION 

26 REGRESS 

27 BIDIMOT 
Figura 2 


BMD5 15 
BMD5 19 
BMD4 6 
BMD4 16 
BPD4 5 
BMD4 14 
TMD4 7 
BMD2 B 
TPD5 1 1 
BMM3 5 
TMD4 9 
BMM3 14 
BMM2 6 



BII3 4 
BMD2 3 
BMD3 7 
BPM1 3 



TMM3 5 

BMI1 5 

BIM2 7 

BMI3 15 

BMI 1 6 


20 

5 

30 

35 


24 

26 


23 


25 


19 

23 


15 

29 


tratteggio di aree chiuse 
76 Disegno di un Circuito Automob. 

codifica di elementi geometrici 
B3 Pianta Geografica 

51 Traiettoria di un oggetto in moto 
caratterist. geometriche del moto 
70 Dati Geometrici degli Angoli 

trattamento dati trigonometrici 
53 Tre Viste tridimensionali 
tre modalità di calcolo 
99 Dieci spirali differenti 

analisi tipologia della spirale 
69 Viste prospettiche di un oggetto 
calcolo tridimensionale 
47 Famiglia di curve sul piano 


75 Disegno di un Dodecadro 





67 Disegni geometrici Piani 
trattazione tema retta 
51 Disegni geometrici Piani 
trattazione tema cerchio 
51 Oggetto in movimento nello spazio 
successione di viste prospettiche 
70 Nove passaggi modalità Appi eli 
utilizzazione TEXT, HGR, HGR2 
54 Disegno della curva cicloide 

56 Vari disegni di un Pentagono 

trattazione tema raccordi curvi 


75 Ghirigori con facili formule 



tema della prospettiva 

tema della prospettiva 

49 Teoria geometrica del Bersaglio 
problema di fisica applicata 

52 Disegno di una funzione piana 

trattazione delle probi, connesse 

50 Varie curve di Regressione 
statistica applicata 


Legenda della tabella 

pr progressivo del programma nel dischetto 
nome nome del programma (abbreviato a 7 caratteri) 
codifica tipologia ovvero: 
primo carattere - Bgrafica bidimensionale 
- T grafica tridimensionale 


secondo carattere 


- M un solo disegno 
I un disegno variabile via input 
Ppiù disegni in successione 


terzo carattere 

quarto carattere 

lunghezza 

riferimento 


-M disegno di elementi matematici 

- Delementi immessi via DATA 

I elementi immessi via INPUT 

- 1 classificazione della 
" difficoltà globale 

- 5 del programma 

del programma in settori (256 byte) 

numero di MC e pagina su cui il programma è stato pubblicato. I 
trattini indicano che il programma non è stato mai pubblicato su 
MC. 


descrizione e problematica trattata commentano il tipo di programma. 


La classificazione che proponiamo é te- 
stata su questo "patrimonio" di program- 
mi immagazzinati sul dischetto già citato 
(sono più di 50), che vengono parzialmente 
rielencati e quindi codificati. Nell'elenco 
pubblicato in queste pagine sono riportati 
anche la lunghezza del programma e il rife- 
rimento MC (numero della rivista e pagina 
su cui è stato pubblicato). 

Quindi i lettori più fedeli che conservano 
i numeri della rivista possono utilizzare 
l'elenco come indice ragionato dei pro- 
grammi pubblicati. I lettori meno fedeli (o 
meglio quelli nuovi) possono richiedere i 
numeri arretrati di loro interesse. 

Nel dischetto vi è inoltre un programma 
iniziale che esegue un breve Slide Show e 
che fornisce la descrizione del contenuto 
del disco. 

L'ultimo carattere della codifica rappre- 
senta un valore di difficoltà riferito all'in- 
sieme del programma e quindi i principian- 
ti è bene che comincino a lavorare con 
quelli di difficoltà I. 

Bidimensionale e Tridimensionale 

Qualsiasi forma grafica su qualsiasi sup- 
porto si presenta sempre bidimensionale, 
questo qualunque sia la dimensione del- 
l'oggetto. 

Una retta che ha una sola dimensione 
può essere visualizzata solo su un foglio, 
anche se nella realtà questa retta vive nello 

Cosi la traiettoria di un satellite, che è 
una linea puramente ideale che unisce tutti 
i punti occupati dal satellite durante il suo 
movimento e che per essere definita neces- 
sita di formule matematiche, per essere vi- 
sualizzala necessita di modalità e conven- 
zioni di calcolo. 

Definiremo un Programma di Grafica 
bidimensionale quello in cui l'oggetto vi- 
sualizzato è bidimensionale o riconducibi- 
le a due dimensioni. La piantina di una 
casa non rappresenta certo un oggetto bi- 
dimensionale ma. per i fini che la piantina 
ha. è sufficiente un aspetto bidimensionale. 

Viceversa se l'oggetto da visualizzare ha 
una sua consistenza tridimensionale, qual- 
siasi sia la convenzione di visualizzazione 
si tratta di Grafica Tridimensionale. 

Qualsiasi forma di visualizzazione si 
scelga l'immagine in output darà sempre 
una idea dell'oggetto reale, in qualche caso 
l'idea sarà precisa, in altri casi c inevitabile 
avere delle approssimazioni. 

Una piantina della Sicilia non tiene con- 
to della curvatura terrestre. Una visualiz- 
zazione degli spigoli di un solido spaziale 
non definisce completamente la posizione 
delle facce rispetto all'osservatore. 

Queste imprecisioni sono insite nel pro- 
blema, non sono state mai risolte in quanto 
non sono risolubili. Hanno sempre affasci- 
nato i pittori e i grafici che hanno spesso 
utilizzato, esasperandola, questa ambigui- 
tà. 

Uno, due, più disegni 

Per quanto riguarda il prodotto in "usci- 


MCmicrocomputer n. 38 - febbraio 1985 


77 




ta" dal programma grafico, e che definire- 
mo disegno, questo può assumere varie 
forme. 

Può essere un disegno unico, fisso, pro- 
dotto alla fine dell'elaborazione. È il caso 
ad esempio dei disegni statistici, che elabo- 
rano dati e alla fine li traducono in forma 
grafica, o il disegno di una funzione mate- 
matica anche molto complessa, che viene 
tracciata in un opportuno riferimento. 

Può essere un disegno unico, ma variabi- 
le durante lo svolgimento del programma. 
Se il programma, e quindi il disegno, sono 
"manovrati" dall'operatore si parla di 
Grafica interattiva. 

Può essere un insieme di disegni da vede- 
re secondo una certa sequenza logica. Se 
tale sequenza viene realizzata su video e 
questo serve per dare una sensazione di 
continuità all'immagine, si parla di Ani- 
mazione. 

Modalità di inserimento dei dati 

Un'altra caratteristica che differenzia i 
programmi di Computer Grafica tra di lo- 
ro. indipendentemente dalle altre condi- 
zioni, è rappresentata dalla tipologia dei 
dati da visualizzare. 

In questo caso vi sono due grossi rag- 
gruppamenti: 

- dati riconducibili ad elementi mate- 
matico-geometrici e quindi esprimibili tra- 
mite una "formula". 

In questo caso se si lavora in Basic si può 
ricorrere alla istruzione DEF FN e quindi 
il “soggetto" da visualizzare risiede addi- 
rittura in una unica riga di programma, 
che può essere modificata facilmente. 

- dati non esprimibili tramite una for- 
mula. 

In questo caso ci si trova di fronte ad un 
problema tipico dell'informatica "tradi- 
zionale" quello dell'organizzazione e della 
codificazione dei dati. II che significa dare 
il maggior numero di informazioni con il 
minimo dei dati. 

Se la quantità dei dati è elevata e se i dati 
non vanno elaborati contemporaneamen- 
te. si entra nel tema organizzazione degli 
archivi, che è del tutto identico a qualsiasi 
altro problema di organizzazione archivi 
(codifica, chiavi di accesso, ordinamento, 
oltre che gestione dell'archivio). 

Tutte queste considerazioni indicano 
come gran parte delle tematiche di Com- 
puter Grafica, riferite cioè al programma 
che sta dietro una certa uscita grafica, sono 
tematiche classiche dell'informatica, e nel 
caso dei piccoli computer, della microin- 
formatica. Richiedono in taluni casi poche 
cognizioni supplementari, in altri casi, per 
problematiche più compiesse, la conoscen- 
za o lo studio di materie propedeutiche al 
problema, non alla informatica. 

Ad esempio il problema della prospetti- 
va, da utilizzare in computer grafica tridi- 
mensionale. richiede la conoscenza degli 
elementi fondamentali di trigonometria, a 
meno che non si accetti di copiare passiva- 
mente il programma senza capirne lo svol- 
gimento. 


Utilizzazione dei programmi 
scritti per macchine 
differenti dalla propria 

Cosi come non esiste un reale standard 
nel linguaggio Basic, a maggior ragione 
non esiste uno standard nei set dei coman- 
di grafici dei vari Basic, anche perché l'i- 
struzione grafica è quella che più dipende 
dall'Hardware della macchina. 

In generale l'esistenza di un set di istru- 
zioni grafiche più potenti non permette di 
realizzare programmi non realizzabili con 
altre macchine, dotate di set più ridotti, ma 
permette sensibili facilitazioni nella pro- 
grammazione. 

Mettiamo ad esempio a confronto i due 


Basic che più rappresentano uno standard: 
quello dell'Apple II e quello dell'IBM e 
compatibili (Olivetti M24, ecc.) 

Le differenze a favore dell'IBM sono: 

— lo scaling automatico, permesso dal- 
la istruzione WIN DOW. Con l'Apple oc- 
core fare una routine di scaling. che in 
genere obbliga a precalcolare tutti i dati da 
visualizzare per la ricerca dei punti estremi 
(massimi e minimi della X e della Y): 

— il riempimento di un'area, permesso 
dalla istruzione FILL. Esistono per l'Ap- 
ple dei tool grafici che contengono istru- 
zioni per il riempimento; 

— le scritte nella uscita Grafica. L'IBM 
accetta la PR1NT anche sulla pagina grafi- 
ca, mentre con l'Apple occorre caricare un 


78 


MCmicrocomputer n. 38 - febbraio 1985 






set di caratteri grafici che "escono" sul vi- 
deo grafico: 

— istruzioni specifiche tipo CIRCLE, 
LINE, che permettono il disegno diretto di 
circonferenze, archi e rettangoli. Invece 
con l'Apple occorre fare delle apposite 
routinette. 

— l'esistenza di istruzioni per la memo- 
rizzazione di aree di pagina grafica e per il 
loro trasferimento in altre zone della pagi- 
na grafica. GET e PUT grafico. 

Quindi, un programma che faccia uso di 
tutte queste funzioni risulta essere molto 
più complicato in Applesoft. Inoltre in Ap- 
plesoft occorrerà caricare set di caratteri. 


routine in linguaggio macchina, ecc.. con- 
sumando "fette" di memoria altrimenti de- 
dicate ai dati. 

E evidente invece che il cuore del pro- 
gramma, ovvero la parte algoritmica, è del 
tutto indipendente sia dagli strumenti soft- 
ware che si stanno usando, sia dal fatto che 
si sta usando un computer. 

Chi affronta un problema di grafica, 
quindi, e ci riferiamo ai neofiti, deve sepa- 
rare logicamente il “cosa disegnare" dal 
"come disegnarlo". E se trova sulle riviste 
programmi che lo interessano, scritti però 
per altre macchine, ricavi il "cosa” per poi 
utilizzare i propri strumenti. 


27 programmi grafici 
per Apple II 

Il dischetto nel quale abbiamo raccolto 
programmi grafici per Apple II pubblicati 
sulla rivista contiene, oltre al programma 
iniziale, che esegue uno Slide Show, i 27 
elencati nella figura 1, assieme al codice 
tipologico descritto in precedenza e inseri- 
to nella tabella di figura 2 e al riferimento, 
costituito da numero e pagina di MCmi- 
crocomputer su cui il programma è appar- 
so. Il dischetto è "aperto" in quanto con- 
tiene tutte le informazioni utili per modifi- 
care il programma, o cambiando i dati da 
visualizzare, oppure inserendo nuove rou- 
tine con nuove funzioni. 

Il codice di difficoltà serve solo per sug- 
gerire un ordine logico utile per il princi- 
piante che voglia cimentarsi nella grafica. 

Ripetiamo che, sebbene non strettamen- 
te indispensabile almeno per i più smalizia- 
ti. è comunque utile avere a disposizione gli 
arretrati con le descrizioni dei vari pro- 
grammi. Dei 27 programmi pubblichiamo 
una serie di output su video, per dare una 
sia pur labile idea delle problematiche trat- 
tate, labile specialmente per i programmi 
interattivi o che producano una serie di 
output successivi. 

E dei 27 programmi ne pubblichiamo 
qui solo uno, il più facile, che è l'ultimo che 
si chiama BIDIMOT ed c listato in figura 
3. Il programma BIDIMOT secondo la sua 
codifica è bidimensionale, produce un solo 
disegno e lo produce tramite comandi che 
gli vengono dati via tastiera. 

Data una figura di partenza, nel nostro 
caso un triangolo le cui posizioni iniziali e 
successive sono individuate dalle coppie di 
valori (XI, Yl. X2, Y2. X3, Y3), tramite 
comandi via input la si muove e modifica 
sul video. 

Il comando +/-A provoca una rotazio- 
ne di pigreco/20 in senso orario o antiora- 

II comando +/-X o +/-Y provoca una 
traslazione nelle 4 direzioni principali. 

Il comando +/-S provoca una variazio- 
ne di scala. 

Dopo la inizializzazione delle variabili 
(righe 200-290) c'è l'istruzione per l'input e 
per il riconoscimento del codice (righe 300- 
410). Se il codice è corretto vengono calco- 
lati i tre vertici nelle nuove posizioni (500- 
540) e viene controllato se rientrano nei 
margini della pagina video (600-720) e se 
rientrano vengono visualizzati (800-810). IÉC 



MCmicrocomputer n. 38 - febbraio 1985 


79 




La Simulazione 


Dimensionamento 
di un parcheggio 

Dopo aver visto la scorsa volta (numero 
36). le possibilità generali della simulazio- 
ne. ci occupiamo, adesso, di una applica- 
zione tra le più classiche: l'analisi di un 
sistema complesso in fase progettuale. 
Senza farsi spaventare dai paroioni, signi- 
fica che proveremo a vedere come si possa 
controllare l'evolversi di una situazione 
molto complessa, e con tanti parametri su 
cui intervenire, utilizzando un qualsiasi 
personal computer e un semplice program- 
mino in Basic. 

La situazione che andremo ad analizza- 
re è quella di un parcheggio con un ingres- 
so e due uscite, naturalmente a pagamento, 
e con una disponibilità di posti, in fase 
progettuale, illimitata. 

Quello che ci interessa sapere è innanzi- 
tutto l'affluenza prevista e quindi il nume- 
ro di posti da predisporre, poi sarà interes- 
sante vedere anche il formarsi delle code in 
ingresso e in uscita per decidere eventual- 
mente il numero di addetti da assegnare a 
ciascun casello. 

Se infatti immaginiamo che la rampa di 
accesso permetta una fila massima di sei 
macchine, oltre le quali si invade la corsia 
di marcia della strada su cui si apre, e 
durante la simulazione questo numero di 
veicoli in attesa supera troppo spesso il 
valore di guardia, possiamo prevedere di 
mettere al casello di ingresso due addetti 
anziché uno in modo da dimezzare il tem- 
po necessario alle operazioni, ad esempio 
prendere il tagliando di arrivo, oppure si 
potrà sostituire l'addetto con una macchi- 
na automatica come è stato fatto sulle au- 
tostrade. 

Dovrebbe essere evidente che riducendo 
il tempo del servizio, a parità di arrivi, si 
riduce conseguentemente anche la fila di 
attesa. 

La stessa cosa si può dire delle due usci- 
te. che possiamo chiamare uscita Nord e 
uscita Sud; per queste inoltre si pone un 
altro problema: il modo con cui gli utenti 
scelgono Luna o l'altra delle uscite. Se in- 
fatti le due uscite danno sulla stessa strada 
non è necessario vederle, in fase di simula- 
zione. come distinte dato che. potendo sce- 
gliere una o l'altra a piacere, é come se 
esistesse una sola uscita con un tempo di 
servizio dimezzato; ma se le due uscite dan- 
no su strade diverse gli utenti sceglieranno 
l'uscita in base alla loro esigenza, e dovre- 
mo quindi studiare i flussi dei probabili 
clienti (ricordiamo che siamo ancora in 


di Valter Di Dio 

fase di progetto) per gestire la scelta dell'u- 
scita: più o meno è come se ciascun utente 
prima di uscire lanciasse un dado e decidesse 
poi in base al risultato. Questo comporta 
che le code ai due caselli di uscita sono 
differenti e si potrebbe verificare anche il 
caso in cui. durante la giornata, si modifi- 
chi la probabilità di scelta dell'uscita. In 
questo easo (probabilità variabile) si può 
provare a mettere tre addetti ai caselli di 
uscita di cui due fissi e uno che si sposta, a 
seconda dell’ora, da un casello all'altro: in 
temini matematici il tempo medio di sosta 
ai caselli di uscita varia con il trascorrere 
del tempo per adeguarsi ai mutati flussi di 
vetture. 

Anche il tempo che intercorre tra un 
arrivo e il successivo sono tempo-dipen- 
denti. se è infatti molto probabile che alle 
otto del mattino si abbia un arrivo ogni 
due minuti, è altrettanto probabile che dal- 
le 1 1 alle 12 arrivino poche macchine. Al- 
tra variabile che si presume tempo-dipen- 
dente è la durata della sosta: chi arriva tra 
le sette e le nove probabilmente rimarrà 
fino alle 14 o più. mentre chi arriva alle 1 1 è 
facile che non si fermi più di un'ora o due. 
Tutti questi dati si devono in qualche mo- 
do avere prima di iniziare la simulazione. Il 
modo migliore di ottenere i dati in casi del 
genere è di munirsi di un cronometro e 
andare a rilevare i tempi in un parcheggio 
già esistente, quindi si interpoleranno i dati 
rilevati con quelli presunti (non ha senso 
prendere i dati di un parcheggio in perife- 
ria e utilizzarli per progettarne uno al cen- 
tro della città) e si utilizzeranno i risultati 
per la simulazione. È chiaro che tanto più 
precise si riveleranno le rilevazioni, tanto 
più verosimili saranno i risultati della si- 
mulazione. È comunque sempre possibile 
effettuare più simulazioni, con valori dei 
parametri differenti, nel caso in cui non si 
sia certi di alcuni dati. Può anche succedere 
che il risultato della simulazione non cam- 
bi sensibilmente al variare dei dati (ad e- 
sempio potrebbe non far differenza se arri- 
va un'auto ogni tre minuti anziché ogni 
due) ma più spesso si scoprirà che anche 
piccole differenze in certe attività possono 
trasformare un sistema apparentemente 
tranquillo nel più grosso ingorgo della sto- 

Quando un'attività risente particolar- 
mente delle variazioni dei dati, quella atti- 
vità si dice "critica" ed è ovviamente sulle 
attività critiche che si deve incentrare l'at- 
tenzione di chi progetta, perché il più pic- 
colo errore può mettere scompiglio in tutto 
il sistema. 


È interessante notare che molto spesso 
l'attività critica non é quella più evidente, 
e, addirittura, attività apparentemente 
"pacifiche" possono portare facilmente al- 
la paralisi del sistema in caso di evento 
eccezionale. Capita anche spesso che due 
attività singolarmente non critiche diventi- 
no improvvisamente “micidiali" nel caso 
che si sovraccarichino tutte e due contem- 
poraneamente: un esempio di ciò si può 
vedere tutti i giorni con i problemi del traf- 
fico dove piccoli incidenti e rallentamenti, 
magari molto lontani tra loro, concorrono 
in pochi minuti a bloccare completamente 
la circolazione. 

Il sistema 

Come abbiamo già accennalo, si tratta 
di simulare un parcheggio con una entrata, 
un certo numero di posti e due uscite su 
strade differenti. 

Per quanto riguarda i dati e i parametri 
di lavoro, supponiamo che gli arrivi, o più 
esattamente la media dei tempi che inter- 
corrono tra un arrivo e il successivo, siano 
variabili di ora in ora. anche il tempo me- 
dio di sosta e la relativa varianza cambiano 
ogni ora, mentre la probabilità di scelta 
dell'uscita resta costante nel corso della 
giornata (possiamo supporre che un'uscita 
porti su una grossa arteria mentre l'altra 
dia su una strada meno trafficata). 

Lo schema del parcheggio é quello di 
figura I. le righe rappresentano i flussi 
mentre le frecce più grosse sono le file d'at- 
tesa. Come si vede i posti macchina sono in 
parallelo, cioè l’utente può recarsi imme- 
diatamente al primo posto libero: spesso 
però non è cosi e prima di trovare un posto 
libero può essere necessario scorrere tutto 
il parcheggio. Nel programma, una varia- 
bile tiene conto di quanti posti occupati si 
sono incontrati prima di trovarne uno libe- 
ro. ma nella tabella stampata questo valore 
(che potremmo chiamare felicità del clien- 
te) non viene visualizzato, vedremo co- 
munque al momento come si può accedere 
a questa informazione. 

Per quanto riguarda le file di attesa, que- 
ste sono dimensionate per un massimo di 
15 posti (aumentabile a piacere) oltre il 
quale il computer va in blocco mentre la 
segnalazione di allarme (corrispondente 
alla massima fila ammissibile realmente) 
può essere fissata molto prima. 

Le variabili casuali 

Pur essendo un sistema apparentemente 
semplice, questo parcheggio possiede un 


MCmicrocomputer ri. 38 - febbraio 1985 


numero elevato di funzioni legate al caso. 
La prima é ovviamente l'arrivo delle auto: 
una volta arrivate queste devono effettuare 
una sosta, casuale anche questa, al casello 
di ingresso: poi raggiungono la piazzola di 
sosta e vi permangono per un periodo più o 
meno lungo e quindi, abbandonata la piaz- 
zola. scelgono a caso l'uscita e qui sostano, 
ancora casualmente, per il tempo relativo 
al pagamento. Solo dopo aver completato 
questa operazione le auto escono dal par- 


dove P (x) è la probabilità di estrazione del 
valore <x>. Come per la Poisson l'inte- 
grale tra meno infinito e più infinito della P 
(x) è uguale ad uno (questo garantisce che 
qualsiasi numero possa essere estratto ogni 
volta), ma il 95% dei valori estratti è com- 
preso tra - 2SG e +2SG. ovviamente però 
addensati intorno alla media. 

Per quello che riguarda invece la scelta 
dell'uscita, la funzione che la governa si 
chiama Binomiale e. nella forma più este- 







cheggio e quindi dal sistema (i più pignoli 
possono ancora seguire le auto nella suc- 
cessiva fila d'attesa necessaria ad immet- 
tersi nel traffico!). 

Tutte le volte che abbiamo detto caso 
non si intendeva semplicemente un nume- 
ro RND ( 1 ) generato dal computer, ma un 
numero estratto si a caso ma con una preci- 
sa distribuzione, una certa media e una 
data varianza. 

La distribuzione che gestisce il succeder- 
si di eventi in una fila d'attesa classica è la 
Poisson: 

p(t> = 5Z _ e 83 

i=o j! 


che. tradotta in parole, rappresenta la pro- 
babilità che si verifichi un arrivo dopo che 
sono trascorse l unità di tempo dal prece- 
dente c sapendo che l'intervallo medio fra 
gli arrivi è <a>. La varianza della Pois- 
son é uguale alla media e quindi ad <a>. 
Il simbolo i! (si legge i fattoriale) corrispon- 
de al prodotto dei primi <i> numeri natu- 
rali: quindi 5! = 5x4x3x2xl = 120. 

Per t che tende a infinito la sommatoria 
precedente tende a uno e quindi all'evento 
certo. 

Per quanto riguarda invece il tempo del 
servizio ai caselli e il tempo di sosta delle 
vetture questo si distribuisce "Normal- 
mente": detta MU la media e SG la varian- 
za. la funzione di distribuzione è la seguen- 
te: 


<»-nu) ! 



sa. corrisponde a quanto segue: 


-.p.(l-p) 


Qui il primo fattore corrisponde al numero 
di combinazioni tra n elementi presi a k a 
k. pé la probabilità che l'evento A si verifi- 
chi e l-p é ovviamente la probabilità oppo- 
sta. P ( A) è allora la probabilità che esca K 
volte su N il risultato A. Facciamo una 
prova. 

Qual è la probabilità che escano due sei 
lanciando cinque dadi? La probabilità 
<p> che esca il sei su un lancio è ovvia- 
mente 16 (.1666 periodico) l-p diventa 
quindi .8333 per cui sostituendo i numeri 
alla formula si ottiene: 

P(6) = 11 .0.167 2 . 0.833 5 " 2 

(5-2) ! 2 ! 


che è uguale a 0.1606: quindi di poco infe- 
riore a quella di fare 6 su un lancio secco! 

Nel nostro caso però le cose si semplifi- 
cano molto perché il “lancio" é uno solo, 
tutto il primo fattore diventa perciò uguale 
ad uno ad essendo (n-k)= 0 scompare an- 
che l'ultimo fattore, per cui la probabilità 
di scelta dell'uscita I diventa: 

P (uscita 1) = p 
e l'evento opposto (uscita 2) 

P (uscita 2) = l-p 

Era del resto intuitivo che se gli utenti 
scelgono di uscire da < I > con probabilità 
.6(60"„) usciranno da <2> il rimanente 
40%. 


Il programma 

Il compito del programma Basic si può 
dividere in tre parti: gestire le liste di attesa, 
generare i numeri casuali da assegnare alle 
varie operazioni secondo le funzioni di di- 
stribuzione opportune e. infine, visualizza- 
re l'andamento della simulazione. 

La gestione delle liste di attesa si rivela il 
compito più facile. 

Vediamo come si sviluppa il processo 
per grandi linee. 

Ad ogni giro del clock (IO secondi) si 
determina con la Poisson se é arrivato il 
momento di far giungere una vettura: se si 
si assegna subito a questa vettura un nume- 
ro (nel programma equidistribuito tra 
ME- VE e ME + VE) che corrisponde a 
quanti cicli dovrà attendere, una volta 
giunta al casello, prima di poter procedere. 
Ogni nuova vettura arrivata si aggiunge in 
coda al vettore della fila d'entrata E% (I) 
esattamente come avviene in una fila vera: 
LI indica il numero di vetture in fila e 
quindi il numero di elementi del vettore che 
sono occupati. Il vettore E% (I) contiene 
quindi LI numeri che corrispondono ai 
rispettivi tempi di attesa delle LI vetture. 

Ogni giro di clock (corrispondente ad un 
ciclo del programma) se Li è maggiore di 
zero, e cioè se ci sono macchine in fila, si 
dccrementa di uno il valore del primo ele- 
mento del vettore e. quando questo è arri- 
vato a zero, la macchina lascia il casello e la 
fila compie un vero e proprio "passo avan- 
ti". Alla vettura che ha lasciato il casello 
viene assegnato ora il valore del tempo di 
sosta (distribuito normalmente con media 
MU e varianza SG) e. trovato un posto 
vuoto (valore - I ) nella lista del parcheggio 
PD% (I). vi viene depositato appunto quel 
valore. Ad ogni giro del programma lutti i 
numeri maggiori di zero contenuti nel vet- 
tore vengono dccrementati di uno (il tem- 
po di sosta passa per tutti) e se una o più 
vetture arrivano a zero, queste vengono 
inviate alle uscite. Anche qui. dopo aver 
scelto quale uscita (vedremo poi come), si 
assegna un tempo di permanenza al casello 
e si mette in coda la vettura nei vettori 
U I o U 2% che sono gestiti nel loop 
principale esattamente come l'entrata. 

Generazione di variabili casuali 

Il problema che si pone con i personal 
computer è la mancanza di generatori ca- 
suali con distribuzione qualsiasi (o almeno 
con le più comuni). Per ottenerle occorre 
lavorare, non poco, con il generatore inter- 
no e alcune funzioni di conversione che 
devono essere nello stesso tempo precise e 
veloci. Il metodo usato la volta scorsa (si- 
mulazione di sala gruppi) per verificare se 
un numero RND generato uniformemente 
poteva appartenere o no ad una certa di- 
stribuzione si può usare solo quando que- 
sto calcolo viene eseguito un numero rela- 
tivamente piccolo di volte all'interno del 
programma, altrimenti si rischia di ottene- 
re una simulazione "in tempo reale” o peg- 
gio rallentata. 


MCmicrocomputer n. 38 - febbraio 1985 


Abbiamo perciò usato quel metodo solo 
per gli arrivi (comunque ottimizzandolo) 
che sono eventi relativamente radi. Per la 
normale si è usata la classica conversione 
Polare proposta (e dimostrata) da Knuth 
nel suo The Art Of Programming più noto 
come la "Bibbia di Knuth". Per il tempo di 
permanenza ai caselli ci siamo accontentati 
deU'equidistribuita per non appesantire 
troppo il programma e soprattutto per non 
aumentare oltre i già lunghi tempi di elabo- 
razione. 

Da RND(I) a Poisson 

Il punto critico della distribuzione di 
Poisson è il calcolo del fattoriale; primo 
per il tempo che occorre, secondo perchè il 
computer (Apple II) non calcola fattoriali 
oltre 33!. 

Per "fortuna" anche il valore a * 1 (vedi 
formula) sballa dopo 20 '30 per cui la Pois- 
son calcolabile su un personal non può 
avere tempo medio di attesa superiore a 20; 
è comunque vero che il valore di t necessa- 
rio ad avvicinarsi ad I quel tanto che basta 
a rendere l'arrivo pressocché certo è molto 
inferiore a 20, per cui è sufficiente calcolare 

i fattoriali fino a 25. 

Il calcolo dei fattoriali è stato fatto pre- 
ventivamente e tabellato nel vettore F (I); 
per cui F (5) = 120, F (8) = 40320 e cosi 
via. Anche tutti i valori della Poisson per t 
che va da Q a 25 sono stati preventivamen- 
te calcolati e messi in un vettore; visto poi 
che di distribuzioni di Poisson ne servivano 
14 (una per ciascuna ora, con medie diver- 
se), si è messo il tutto in una “matriciona" 
PA% (I.J) dove I sono le ore e J le decine di 
secondi trascorsi dall’ultimo arrivo. 

All'interno del programma si calcola un 
numero RND(I) e si vede se è minore o 
maggiore di PÀ% (I.J); se il numero gene- 
rato è minóre del corrispondente Poisso- 
niano si verifica un arrivo, altrimenti no. 
Calcolate che con media 6 la Poisson vale 
.9999 già dopo 8 cicli. 

La parte di programma che genera la 
Matrice va dalla riga 1200 alla riga 1280. 
La matrice viene usata alle righe 370 - 390. 

Da RND(l) a Normale 

Il metodo di conversione utilizzato per 
generare un numero con distribuzione nor- 
male da una coppia di numeri equidistri- 
buiti è particolarmente semplice e quindi 
veloce, la precisione è più che sufficiente 
per gli usi comuni ma molto dipende dalle 
caratteristiche del generatore interno della 
macchina. In effetti il generatore RND(I) 
di un computer non genera realmente nu- 
meri casuali (solo un’urna lo può fare) ma 
con speciali algoritmi basati sul modulo di 
divisioni e troncamenti vari permette di 
ottenere, partendo da un numero base det- 
to seme, un secondo numero apparente- 
mente indipendente dal primo, usando 
questo come seme si ottiene il successivo e 
cosi via. 

È chiaro perciò che partendo dallo stes- 
so seme si otterrà sempre la stessa serie. 


Un secondo difetto è il fatto che queste 
serie, essendo il risultato di operazioni di 
modulo, sono per forza cicliche, dopo un 
certo numero di estrazioni riotterremo cosi 
il seme iniziale e quindi di nuovo la stessa 

Utilizzando dei semi molto grandi e del- 
le divisioni per numeri particolari si garan- 
tisce che la serie sia abbastanza lunga da 
non creare problemi ad un uso comune. 

La media di una variabile equidistribui- 
ta tra A e B deve essere ovviamente A + B/2 
e la varianza sarà (B-A) 2 /12. 

Per conoscere l’efficienza del generatore 
di numeri casuali della propria macchina 


basta perciò generare un numero elevato di 
valori e calcolarne: 

Media X. 
i=1 i 

£(X.- M ) 2 
e varianza Al] 

e vedere se corrispondono ai valori calco- 
lati per l'equidistrìbuita (vedi figura 3). Se 
la media tende ad essere inferiore si dice 
che il generatore è rosa se invece prevalgo- 



MCmicrocomputer n. 38 - febbraio 1985 


no i valori alti (media superiore) il genera- 
tore sarà azzurro. 

Se la varianza dilTerisce di molto, la di- 
stribuzione, molto probabilmente, non sa- 
rà uniforme e serviranno altre prove per 
scoprire di quale distribuzione si tratta lu- 
na prima prova potrebbe essere l'indice di 
simmetria: tanti valori sotto la media 
quanti sopra). 

1 generatori di variabili casuali della Mi- 
crosoft e quindi Apple, Commodore e 
MSX. sono abbastanza precisi ma legger- 
mente rosa (di pochissimo) e perciò tran- 
quillamente utilizzabili, per altre macchine 
occorre provare. 


Tornando alla Normale, se il generatore 
è buono il metodo polare garantisce buoni 
risultati in tempi di elaborazione accettabi- 

La conversione funziona in tre stadi e. 
partendo da due numeri RND equidistri- 
buiti tra 0 e 1 (incluso) genera una coppia 
di numeri casuali appartenenti ad una di- 
stribuzione Normale Standardizzata: cioè 
con media 0 e varianza I . 

Si comincia generando due numeri ca- 
suali U1 ed U2, poi si calcola: 

Vl= 2 x Ul - 1 (perciò -I « VI s£ +!) 

V2=2 x U2-I (idem) 


poi si calcola 
S= VI* 2 x V2‘2 

se S è maggiore o uguale ad I si scarta lutto 
e si ricomincia, altrimenti si calcola 
Nl= VI x SQR ((-2 x LOG (S))/S) 
ed 

N2= V2 x SQR ((-2 x LOG (S))/S) 
NI ed N2 sono distribuiti normalmente 
con media zero e varianza uno. A questo 
punto basta moltiplicarli per la varianza 
voluta e sommarci la media per avere i 
valori definitivi. Il calcolo della normale 
viene eseguito dalla riga 900 alla riga 940. 
naturalmente si calcola un solo valore dato 
che il secondo non serve. 



MCmicrocomputer n. 38 - febbraio 1985 


83 


PUR l = l TQ 
X = RND (1) 



JRUN 


MOMENTO 1 <.4 C ?9> 
MOMENTO 2 (.333) 
MOMENTO 5 
MOMENTO 4 (.2 ) 


.502875298 
.336213781 
. 252536229 
. 202202786 


53 M3 = X3 7 I 

54 M4 = X4 / I 

60 PRINT "MOMENTO 1 

61 PRINT "MOMENTO 2 

62 PRINT "MOMENTO 3 

63 PRINT "MOMENTO 4 


(.499) "MI 
(.333) "M2 
(.25 ) "M3 
(.2 ) "M4 


Risimi -* - Programma per il rimirali,, della preeisiane , lei generatore ilìmimrr, rumili. I ri, minili , lev, ma estere il più 
t irino passibile al valore leurieo strilla ira parentesi. Come si wde, il generatore ,lell‘ Apple è prullramenie perielio 


Da RNP(l) a Binomi ale 

E questo il caso più semplice in quanto 
basta controllare se il numero generato, 
che è già tra zero e uno. è minore o maggio- 
re della probabilità dell'evento da sceglie- 
re. In pratica se dobbiamo scegliere A nel 
25"„ dei casi, B nel 45"„ dei casi e C' nel 
rimanente 30", , delle volte, si genera un 
numero RND(I) e se é minore di .25 si 
sceglie A. se è compreso tra .26 e .65 si 
sceglie B. se invece è maggiore di .7 si deci- 
derà per C. 

La Binomiale viene usata nel program- 
ma per la scelta deU'uscitu alle righe 1020 e 
1030. 


Note al programma 

Le prime righe del programma conten- 
gono i parametri statistici dei vari caselli e i 
limiti delle code; in fondo, alla riga 10000. 
si trovano i dati relativi agli arrivi medi ora 
per ora e dalla 10007 in poi la media e la 
varianza del tempo di sosta per chi arriva 
ad una certa ora (l'ora è uguale alle ultime 
cifre del numero di riga); ricordarsi che il 
95"„ dei valori generati con distribuzio- 
ne normale è compreso tra -2 x SG e 
+ 2 x SG. quindi con media 2000 e varian- 
za 500 si ottengono valori compresi tra 
1000 e 3000 salvo casi rari. Perconvertire le 
ore in decine di secondi, che è l'unità di 
misura del programma, bisogna ovvia- 
mente moltiplicare per 360. 

La gestione delle code, come spiegato 
precedentemente, non è la migliore possi- 
bile (è comunque la più facile da spiegare): 
si potrebbe risparmiare lo scorrimento in 
avanti della fila creando un puntatore al 
"primo della fila" e muovendo lui anziché 
la coda: questo rende la velocità costante 
anche per code molto lunghe. 

Per quanto riguarda la gestione delle 
macchine in sosta, il ciclo FOR...NEXT 


della riga 530 vada zero ad un fantomatico 
PH: questo è il puntatorealla posizione più 
alta (High) occupata dentro il vettore 
PD",, (posti disponibili) e in questo modo 
la velocità di esecuzione di un loop non 
dipende più dalla dimensione del parcheg- 
gio. ma solo dal numero di auto in sosta. Il 
valore di PH sale ogni volta che una mac- 
china in arrivo non trova posti liberi tra i 
primi PH (riga 860). e scende fino al primo 
posto occupato che trova, quando la mac- 
china in posizione PH esce (righe 
1010,1015). Per liste brevi, fino a cinquan- 
ta posti, questo lavoro non è necessario e i 
cicli possono andare tranquillamente da 
zero al massimo numero di posti previsti 
Con 50 macchine dentro un ciclo dura 8 
decimi di secondo mentre, con 150. sale a 3 
secondi, per diventare 4 secondi quando 
arriva una macchina che deve cercare un 
posto. La Dimension massima accettata 
dall'Apple per il numero di posti é di 
1 5000. ma la simulazione diventerebbe cer- 
tamente troppo lenta. 

Come accennato precedentemente, è 
possibile sapere quanti posti occupati ha 
incontrato una vettura in ingresso prima di 
trovarne uno libero. La variabile è la J del 
ciclo FOR...NEXT di riga 830. Per ottene- 
re in uscita questo valore basta aggiungere 
la seguente riga: 

2195 PRINT "Felicità = ";J 

Conclusioni 


Con questo esempio abbiamo terminato 
la gestione delle liste di attesa e anche buo- 
na parte della trattazione matematica: a 
questo punto molti saranno in grado di 
applicare quanto detto anche ad altri pro- 
blemi: gestione delle scorte in un magazzi- 
no o delle telefonate ad un centralino e. 
perché no, dell'arrivo e invio di messaggi in 
una rete di computer. 

Appuntamento alla prossima volta per 
una nuova, divertente applicazione Mt 


Dove trovare 
le stampanti 

Gateo 


BARI: L & L COMPUTER - Largo 2 Giugno • 
tei 080/224 277 

FIRENZE: MARCO BARONI - Via Mallbran 5' 
tei. 055/350.471 

GENOVA SAMPIERDARENA: ARGE sm 
Via N. Ronco 2 cane - lei 010/41 38.04 
NAPOLI: E D.L srl - VIb Coriolano 3/C 
tei 081/63.23.35 

PADOVA (TENCAROLA SELVAZZANO): SITAL sr 
Via Euganea 7 - tei 049/63 75 61 
ROMA: INFO - Via Flavio Dominano IC 
tei. 06/51 26700 - 5138023 - 5127381 


al. 071/917 3520 


BOLOGNA: INFORMATICA srl 
tei, 051/24.03 69 
BOLZANO: DAIAPLAN - Via ( 


ral86-tel 011/977 18,93 
chiavar): tLCO sne - Via R Orsi 44 
lei 0185/32 13 47 

CIVITANOVA MARCHE: ELETTROCASA 
63/71 - tei 0733/7 


la Corte Vecchia 67 


FERRARA: C I 

tei 0532/48.648 
GAETA. BIT COMPUTERS - Lungomare Caboto 74 
lei 0771/47 01.68 

GENOVA: RAPPR-EL - Via Borgoratti 23/i 

tel 010/31 68 88-36 35 72 

LATINA: BIT COMPUTERS - Via A Diaz 14 

tei. 0773/49.5285 

MERANO: COMPUTER MARKET 

Via S Maria del Contorto - lei 0473/36.1 33 

MESSINA: SOFIN soa - Via Don Blasco 75 

tei 090/29.23 987 

MILANO: ALL INFORMATICA SHOP - Via Uzza- 
retto 2 - tei 02/28.70 105 • BITOMANIA sne - Via 
Rosolino Pilo 3 - tei 02/20.43130 • L UFFICIO 


e Longa 15/17 


MONZA: MICROSHOP - V 
tei. 039/38 98.50 
PARMA: BIT SHOW - Borgo Parente 1- 
lei 0521/25.014 

PERUGIA: MICROCOGIT sa 5 - Via dei Filosofi 
tei. 075/35.132 

REGGIO CALABRIA: SOFIN spa - Via S Fran, 
SCO di Paola 108/d - lei 0965/25 103 
REGGIO EMILIA: COMPUTER CENTER 
Via Dante Alighieri 4 - tei 0522/31 965 
ROMA: ALTEC srl - Via Monte DOnorio 35 - le 
06/79 41 755 • BIT COMPUTERS - Via Flavio Di 
_ 5138,023 


350/350a - tei 06/79. 

14/16 - tei 06/85.82 96 • Viale -Ionio 333/335 
tei. 06/81 70.632 • COMPUTER MARKET srl - P z 
S Dona di Piave 14 - tei 06/79 45 43 • DATA OF 

FICE spa - Via Sicilia "" 

EPTA srl - Via Verona 30 - tei 06/42 84 13 • ME 
MORY COMPUTER srl - Via Aureliana 39/43 
06/4758 366 • PERSONAL COMPUTER - Pia Pio 

SAVONA: GANORA INFORMATICA - Via Tonno 59 
tei. 019/36.204 

TORINO: IN D UT COMPUTER STUDIO sas - C so 
Einaudi 8 - tei 011/59.55.94 • SOFTEC COMPU- 
TER srl - Via Juvarra 24 - tei 01 1 /83 96 446 
TRIESTE: COMPUTER MARKET srl 
Via Val di Rivo 6 - tei 040/61 946 
VERONA: ARMUFFICIO sne - Via Guglielmo Mar- 
coni 36/38 - lei 045 / 33 812-38 874 • GUIDO 
BIANCHI & C - Via Salti I - lei 045/59.00 1 1 
VITERBO: BIT COMPUTERS - Via Palmanova !2c 
tei 0761/22 39.77 



MCmlcrocompuler n 38 - febbraio 1985 



ANCHE PER MICRO 
E PERSONAL 




FIORISCONO 
LE MARGHERITE» 

CON JUKI 

NATURALMENTE 

JUKI serie 6000 
Stampanti a margherita. 

10-18-40 caratteri al secondo. 

110 - 132 - 158 - 197 colonne (a 10, 12, 15 car/pollice). 

Ampia scelta di margherite. 

Fogli singoli - moduli continui. 

Interfaccie standard, speciali, bufferizzate. 

Nessun problema di collegamento: le margherite JUKI "crescono bene" 
nel campo degli home, personal, micro e minicomputer. 


Master Distributor: Juki (Europe) GMBH - Eiffestrasse 74 - 2000 Hamburg 26 - Germany 



Streams e Channels: il sistema di I/O dello Spectrum 


Questo mese vogliamo occuparci di un 
argomento mollo interessante: come il Basic 
dello Spectrum gestisce le operazioni di 
inputì output UtO). 

Queste operazioni sono fondamentali per 
il funzionamento di un calcolatore, perchè è 
tramile esse che l'unità centrale comunica 
con il mondo esterno, ricevendo dati dalle 
periferiche o trasmettendoli. 

Le periferiche non devono necessariamen- 
te essere esterne alla consolle: ad esempio, 
come vedremo, la tastiera è trattata alla 
stessa maniera dello schermo o della ZX 
printer: la prima unità ovviamente spedisce 
dei dati all'unità centrale e le altre due ne 

Nonostante sia decisamente sofisticato e 
versatile, il sistema di I/O dello Spectrum 
non viene praticamente menzionato dal ma- 
nuale originale: ne parla invece I anche se 
molto superficialmente ) il manuale dell'in- 
terfaccia I. 

È veramente un peccato che la Sinclair sia 
stala cosi reticente, perchè la conoscenza — 
anche se non approfondita - dell'argomen- 
to può risultare utile in numerose occasioni 
anche a chi non ha nè l'interfaccia I nè i 
microdrive, ed è praticamente indispensabi- 
le a tulli gli appassionati di hardware che 
hanno intenzione di interfacciare qualche 
periferica autocostruita al loro computer. 

In questo articolo, rivolto soprattutto ai 
possessori dello ZX in versione base, ci pro- 
poniamo quindi di illustrare i concetti fonda- 
mentali relativi all' I/O dello Spectrum. 


Come abbiamo detto le operazioni di 
I/O permettono al computer di comunica- 
re con l'esterno: esse coinvolgono sempre 
una periferica che genera dati (ad es. la 
tastiera, un convertitore analogico/ digita- 
le...) o li riceve (ad es. Io schermo, una 
stampante...) e. ovviamente, dei dati in 
viaggio da o verso l'unità centrale. 

Facciamo un paragone con qualcosa di 
sicuramente familiare: immaginiamo che 


l'unità centrale sia un amplificatore audio, 
la periferica una cassa acustica ed i “dati" il 
segnale musicale. 

Perché il segnale possa giungere alla cas- 
sa acustica è necessario collegare quest' ul- 
tima all'amplificatore con un filo: allo stes- 
so modo si può pensare che dei dati possa- 
no viaggiare dall'unità centrale ad una pe- 
riferica (e viceversa) soltanto se i due di- 
spositivi sono uniti fra loro da una sorta di 
"filo" ideale. 

Per il Basic dello Spectrum le cose fun- 
zionano proprio cosi: per poter scambiare 
dati con una periferica bisogna prima ef- 
fettuare il collegamento con uno di questi 
fili ideali, che vengono chiamati stream 
(letteralmente il termine significa "ruscel- 
lo"). Gli stream a disposizione sono 16, 
numerati da 0 a 1 5 e vengono identificati 
premettendo al numero corrispondente il 
segno (si legge hash). 

E importante sottolineare che agli 
stream non corrisponde una vera e propria 
realtà fisica: in altre parole essi sono otte- 
nuti via software e non via hardware. 

Anche le periferiche hanno un nome 
convenzionale, e sono chiamate channel. 
Un channel viene indicato con una lettera 
maiuscola. 

Ricapitolando: i channel sono dei dispo- 
sitivi che possono generare c/o ricevere da- 
ti, mentre gli stream sono i cammini ideali 
che vengo percorsi dai dati. 

Uno Spectrum in versione base ricono- 
sce i seguenti tre channel: 

CANALE USO 

K tastiera/parte inf. dello 

schermo 

S parte sup. dello schermo 

P ZX printer 

il primo può sia trasmettere dati (tastiera) 
che riceverli (parte inf. dello schermo, dove 
sono visualizzati i messaggi di errore), 
mentre il secondo ed il terzo possono solo 
riceverne. 


STREAI1 
n . 

IDENTIFICATORE 
DI CANALE 

USO IN 
OUTPUT 

USO IN 
INPUT 

0 

K 

parte 
i nf e r i o re 
dello schermo 

tast i e ra 

1 

K 

parte 
i nf e r i o re 
dello schermo 

tast i e ra 

2 

S 

parte 
supe r i o re 
dello schermo 

nessuno 

3 

P 

ZX p r i nte r 

nessuno 

Tabella 1 - Canal 

riconosciuti dallo Spectrum in ir 

sione base e relativi collegament 

con i canati * 0... * 3. 


MCmicrocomputer n. 38 - febbraio 1985 


10 REM *********************** 

20 REM * * 

30 REM * STREAM LI STER * 

40 REM * * 

50 REM *********************** 

60 REM 

1000 DEF FN PCP1=PEEK P+256*PEEK CP+11 
1005 CLS : PRINT TAB 8: INUERSE l:"USO D 
EGLI STREAM" 

1010 PRINT "Stream " ;tab 7 : ‘ In ''Out " ; TAB 1 
4: Nome";TftB 19:"Uso" 

1020 FOR s=-3 TO 15 
1025 PRINT TAB 2.s : 

1030 LET d=FN p C s*2+23566+81 

1040 IF d=0 THEN PRINT TAB 19: INUERSE 

1 : "non usato" : GO TO 1200 

1050 LET d=d+FN PC236311-1 

1060 IF FN p Cd+21 05572 THEN PRINT TAB 

7: "In" : 

1070 PRINT TAB 9;'V" : 

1080 IF FN p Cd 1 05572 THEN PRINT TAB 10 
: "Out " : 

1090 LET f*=CHR* PEEK Cd +41 

1100 PRINT TAB 14 : " . + $: '“.TAB 19: 

1110 IF f*="K" THEN PRINT "schermo inf. 
" : GO TO 1200 

1120 IF f$="S" THEN PRINT "schermo sup. 
: GO TO 1200 

1130 IF f*="P" THEN PRINT "stampante": 
GO TO 1200 

1140 IF f $="M" THEN PRINT "^crodriue" : 
GO TO 1200 

1150 IF f*="N" THEN PRINT "network": GO 
TO 1200 

1170 IF f$="T" THEN PRINT "RS 232": GO 
TO 1200 

1180 IF f*="R" THEN PRINT "area lavoro" 
: GO TO 1200 

1190 PRINT FLASH l:"Non specificato" 

1200 NEXT s 

1210 PRINT AT 0.0 

1500 INPUT "Numero dello s tre am ? 

CENTER per use i re 3" i LINE s$ 

1505 IF s$="" THEN STOP 
1510 CLS 

1515 LET s=UAL si 

1520 PRINT TAB 10: INUERSE 1 : "STREAM NUM 
ERO " :s" 

1530 LET d=FN p C s*2+23566+81 
1540 IF d=0 THEN PRINT "STREAM CHIUSO": 
GO TO 1500 

1550 LET d=d+FN pC236311-l 

1560 LET f$=CHR$ PEEK Cd +41 

1570 PRINT "Identificatore di canale: 


1600 IF f $="K" THEN 
1610 IF f$="S" THEN 
1620 IF f$="P" THEN 
1630 IF f ♦="M" THEN 
1640 IF f *=" T" THEN 
1650 IF f ♦="N“ THEN 
1660 IF f ®=“R" THEN 
1670 PRINT FLASH 1: 


GO TO 2000 
GO TO 2020 
GO TO 2040 
GO TO 2500 
GO TO 3000 
GO TO 3500 
GO TO 2050 
'Identificatore 


1820 IF FN p C d 1=5572 THEN PRINT FLASH 
1 : "So lo Output" 

1830 IF FN p Cd +2 1=5572 THEN PRINT FLAS 
H 1 : "Solo Output" 

1840 IF FN p Cd 1 08 AND FN pCd+2108 THEN 
RETURN 

1850 PRINT "Shadow ROM output :":FN P Cd 
■*■51 

1860 PRINT "Shadow ROM input :";FN pCd 
+71 

1870 RETURN 

2000 PRINT INUERSE 1: "Schermo inf./'tast 
2010 GO TO 2060 

2020 PRINT INUERSE 1: "Schermo sup." 

2030 GO TO 2060 

2040 PRINT INUERSE l:"ZX printer" 

2045 GO TO 2060 

2050 PRINT INUERSE l:"Area di lavoro" 
2060 GO SUB 1800 
2070 GO TO 1500 

2500 PRINT INUERSE 1 : "MICRODRIUE" 

2510 GO SUB 1800 

2520 PRINT "Drive numero :";PEEK C 

d+251 

2530 LET m=FN p Cd +261 

2540 PRINT "Mappa del nastro : " 

2550 FOR i=0 TO 31: FOR j=l TO 6 

2560 POKE 16384+2048+2K32+JX256+31- i . PEE 

K Cm+il 

2570 NEXT J : NEXT i 

2575 PLOT 0,95: DRAUI 255.0: PLOT 0.88: D 
RAUI 255.0 

2580 PRINT '"Area della mappa :":m:'-" 
:m+31 

2590 PRINT "Nome cartuccia 
2600 FOR i =d +44 TO d+53 
2610 PRINT CHR$ PEEK i : 

2620 NEXT i : PRINT 
2630 PRINT "Nome del file 
2640 FOR i =d+l 4 TO d+23 
2650 PRINT CHR* PEEK i : 

2660 NEXT i: PRINT '"Spazio libero 

2670 LET f=0 

2680 FOR i=0 TO 255 

2690 LET f =f +NOT POINT Ci, 901 

2700 NEXT’ i 

2710 PRINT f -'2 : " Kbytes" 

2720 GO TO 1500 

3000 PRINT INUERSE 1:"RS 232 ": 

3010 IF FN p Cd+51=3132 THEN PRINT "Text 
" : GO TO 3040 

3020 IF FN p Cd+51=3162 THEN PRINT “Bina 

*'y": GO TO 3040 

3030 PRINT " CSconosc i uto 1 " 

3040 GO SUB 1800 

3050 PRINT "Baud rate :":INT C3 

500000/'CCFN p C 23747 1+2 1X261 1 : " Ccircal" 
3060 GO TO 1500 

3500 PRINT INUERSE 1 : "NETWORK" 

3510 GO SUB 1800 

3520 PRINT "Stazione numero :":PEEK 23 
749 

3530 PRINT "in trasmissione verso" ;PEEK 
f d + 1 1 1 ’ " C i n broadcast!" AND PEEK Cd + lll = 
0 

3540 GO TO 1500 


Usuilo - Questa ulUlly, traila dal libro di Andrew Penne I " Master tour ZX microdrive", consente di ottenere numerose informazioni sullo stato corrente di stream e channel. Il 
programma controlla anche i canali (non menzionati nell'articolo I riconosciuti dallo Spectrum in presenza di Interfaccia ! e Microdrive. 


MCmicrocomputer n. 38 - febbraio 1985 


87 


A dire il vero esiste anche un quarto 
canale. l'R. che però è accessibile solo da 
linguaggio macchina e non da Basic. 

Per mandare dati ad uno stream O per 
riceverli si possono usare i seguenti coman- 
di Basic: 

PRINT 5 < numero di stream > (output) 
INPUT s < numero di stream > (input) 
LIST * « numero di stream > (output) 
INKEYS ' < numero di stream > (input) 
con la solita sintassi. 

Vediamo ora come si effettua l'opera- 
zione di collegamento tra uno stream ed un 
channel; il comando da utilizzare è OPEN 
# (si trova sul tasto 4) con questa sintassi: 
OPEN 5 < numero di stream >, "identi- 
ficatore di channel > " 

È anche possibile scollegare uno stream 
ed un channel uniti in precedenza, usando 
il comando: 

CLOSE s «numero di stream > 

Si noti che non è possibile collegare lo 





stesso stream a più channel (si otterrebbe il 
messaggio di errore ■'stream already o- 
pen"). mentre è perfettamente lecito colle- 
gare stream diversi allo stesso channel. 

A questo punto abbiamo appreso tutto 
ciò che è necessario per effettuare qualche 
piccola prova pratica. 

Proviamo, per esempio, a mandare dei 
dati allo schermo (superiore) attraverso il 
canale 6. 

Il canale corrispondente alla parte supe- 
riore dello schermo è l'S. quindi per prima 
cosa bisognerà dare il comando: 

OPEN 5 6, "S" 

poi si possono mandare i dati con il co- 
mando PRINT, ad esempio 
PRINT 56; "PROVA 

Dato che il tutto è perfettamente equiva- 
lente a PRINT "prova" (vedremo tra poco 
il perché) proviamo a fare qualcosa un po’ 
più interessante, ad esempio scrivere sulle 
righe dello schermo in basso, sfruttando il 
fatto che ad esse corrisponde il canale K. 
Colleghiamo uno stream: 

OPEN S4."K“ 

e poi diamo i comandi PRINT 54: "pro- 


va": PAUSE 0; la seconda istruzione serve 
per impedire l'apparizione del messaggio 
di OK, che altrimenti si sovrapporrebbe 
alla nostra scritta. 

Già che ci siamo proviamo anche a fare: 

PRINT 4; AT 0.0: "RIGA 23 '; AT 1,0;"RIGA 
24" , PAUSE 0 

per dimostrare che effettivamente PRINT 
5 può essere usalo come il normale 
PRINT. 

Con la prima prova effettuata abbiamo 
visto che un PRINT 5 è perfettamente e- 
quivalente ad un PRINT normale, a patto 
di collegare lo stream che si vuole utilizzare 
con il canale S. 

Vediamo il perchè. 

Subito dopo l'accensione, lo Spectrum 
esegue una routine di inizializzazione. che 
tra le altre cose effettua automaticamente 
alcuni collegamenti tra i primi quattro 
stream ed i channel K. SeP secondo la 



seguente tabella: 

STREAM CHANNEL 

SO K 


52 S 

53 P 

Il comando PRINT poi è in pratica una 
forma concisa di PRINT #2; a questo pun- 
to risulta chiaro che PRINT e PRINT » 
(con uno stream diretto verso lo schermo) 
sono in pratica la stessa cosa, in quanto, se 
non viene specificato uno stream, lo Spec- 
trum ne usa automaticamente uno già col- 
legato con lo schermo. 

Lo stesso discorso può essere fatto per 
LIST, che è in pratica LIST #2, mentre 
LPRINT equivale a PRINT 53 (provare 
per credere). 

Non è affatto detto che questi collega- 
menti automatici non debbano essere mo- 
dificati: ciò è perfettamente fattibile, usan- 
do normalmente OPEN 5 e CLOSE 5. An- 
zi, alle volte la cosa può rivelarsi estrema- 
mente utile; ad esempio, sviluppando un 
programma che contiene degli LPRINT. si 
può. in fase di debugging, dirigere l'output 


verso lo schermo con un OPEN #3. "S" per 
non sciupare inutilmente carta. 

Ecco un altro esempio. Supponete di a- 
vere in un programma una subroutine che 
stampi dei dati con una serie di PRINT: si 
può fare in modo che la stampa avvenga, a 
richiesta, su schermo o su carta: 

lOOINPUT' SCREEN OR PRINTER (S/P) : A$ 
110 IF A$= "S" THEN GOSUB 1000:GO- 
TO200 

120 IF A$< >“N" THEN GOTO 100 
130 OPEN #2, "P" 

140 GOSUB 1000 

150 CLOSE 52 

200 «seguito programma > 


1000 REM routine di stampa 

1010 

1020 

1999 RETURN 

Si potrebbe pensare che cambiare i colle- 
gamenti degli stream da 0 a 3 possa in certi 
casi confondere il computer, si immagini 
ad esempio cosa succederebbe durante i 
listing automatici (quelli ottenuti premen- 
do semplicemente ENTER ) se venisse alte- 
rato il collegamento dello stream #2. Inve- 
ce lo Spectrum è perfettamente protetto 
contro le modifiche "pazze", in quanto 
possiede tre stream aggiuntivi, non modifi- 
cabili da Basic, permanentemente collegati 
ai canali K. S. R in questo modo: 
STREAM CANALE 

-1 R 

-2 S 

-3 K 

ciò permette al Basic di non confondersi 
mai. 

Come abbiamo specificato, il sistema 
degli stream e dei channel è ottenuto da 
software, quindi da qualche parte della 
memoria saranno memorizzate tutte le in- 
formazioni relative. 

Prima di concludere la puntala vediamo 
dunque dove sono situate queste informa- 
zioni e come sono memorizzate. 

La Channel Information Area, come di- 
ce il nome, contiene le informazioni relati- 
ve ai canali, composte da blocchi di 5 byte 
cosi formati: i primi due byte costituiscono 
un puntatore alla routine che manda i dati 
dalla periferica identificata da quel canale, 
i secondi due sono un puntatore alla routi- 
ne che riceve i dati dalla periferica e il 
quinto byte é il carattere ASCII della lette- 
ra che identifica il canale. 

Se il canale può solo trasmettere o rice- 
vere daii, l'indirizzo rispettivamente della 
prima o della seconda routine sarà quello 
della routine di gestione dell'errore (5572). 

Infine la variabile di sistema STRMS. 
lunga 38 byte (2 byte per ognuno dei 16+3 
stream), contiene la tabella dei collega- 
menti Tra stream e channel; ogni coppia di 
byte rappresenta un numero che indica la 
distanza (in byte), dall'inizio della Channel 
Information Area, delle informazioni rela- 
tive al channel collegato a quello stream + 

I . Arrivederci al prossimo TuttoSpectrum. 


MCmicrocomputer n. 38 - febbraio 1985 




MI.PE.CO. 


ESTENSIONE PER SPECTRUM 

399.000 “ZS». 

COMPRESE: 4 cartucce con 5 programmi (introductory, 
master file, tasword two antattack, games designer), 

Istruzioni in italiano 



INTERFACCIA UNO 



SPECTRUM 48K PLUS 


con lo SPECTRUM plus istruzioni in italiano e in regalo 5 programmi in italiano (conto corrente, grafica funzioni, 
bioritmi, esapedone-chess + il Supercopiatore di Massimo Rossi). 


qQO 


QL 1.199.000 

alimentatore, manuale in inglese, 8 cartucce. 4 programmi. Consegna circa 

nuovo SPECTRUM 48K PLUS 399.000 

130.000 lire Oi software in regalo 

INTERFACCIA UNO + MICRODRIVE 299.000 

(4 cartucce con 5 programmi maslerfile. tasword two 

MICRODRIVE 149.000 

STAMPANTE ALPHACOM 32 199.000 

per Spectrum e ZX 81 istruzioni in italiano. 1 rullo di carta In regalo 

EPSON RX 80 F/T+ 769.000 

AVVERTENZE: 

-pagamento contrassegno al ricevimento del pacco 
-segreteria telefonica in funzione fuori orario, chiedete listini 
o altre informazioni Vi risponderemo 

-sconti quantità 

INFORMAZIONI E ORDINI: 

MI.PE.CO. - Cas. Postale 3016 00121 


INTERFACCIA PARLANTE CURRAH 99.000 

manuale completo In Italiano. Tutti i suoni attf averso il Vostro televisore 

TRISLOT 27.000 

(presa tripla per Spectrum) 

10 RULLI di carta termica 
x ALPHACOM 32 32.000 

4 CARTUCCE x MICRODRIVE 64.000 

ESPANSIONE + 32Kx SPECTRUM .. 79.000 

(issue 2 o 3 specificare, lacilissima da montare, Istruzioni dettagliate in 
italiano con totogralie. porta il Vs. Spectrum da 16K a 48K (ad esaurimento)). 

SUPER COPIATORE con verify 15.000 

GARANZIA 48H 

RIPARAZIONI SPECTRUM 


PARTI DI RICAMBIO PER SPECTRUM 


ROMA (OSTIA) - Tel. 06/5611251 









Finalmente dalla Xebec — 



la Memoria di Massa 
Ultracompatta 


Il sottosistema a dischi Winchester 9710H non 
poteva essere creato che dalla Xebec, l'azienda 
ultra-innovativa che ha inventato il 
leggendario Controller S1410. 

Il sottosistema 9710H, "slim" nella forma, è 
però ricco di avanzate prestazioni di sistema 
quali: 

• 10 Megabyte di capacità formattata in 
dimensioni molto ridotte. 

• Connettori di I/O di tipo a vaschetta per 
facilitare sia la connessione singola che di 
più unità. 

• Rilevamento e correzione automatica degli 
errori per la massima integrità dei dati. 

•Raffreddamento per convezione naturale, 
massima silenziosità in ufficio in quanto 
privo di ventilatori. 

• Ampia scelta di adattatori SASI per i Mini/ 
Microcomputers più diffusi. 

• Piacevole nell'aspetto ed avanzato disegno 
industriale. 

Tutte queste prestazione alleggeriscono il 
carico al Vostro PC, ma non appesantiscono il 


Vostro budget in quanto le grandi economie 
di scala ottenute dalla Xebec concorrono 
sensibilmente aH'abbattimento dei costi, alla 
riduzione dei prezzi ed all'estensione della 
garanzia pari a un intero anno! 


La firma "Xero D" della Xebec che compare su 
questa pagina è il marchio di qualità della 
società. 

Il marchio identifica l'obiettivo aziendale di 
eliminare tutti i difetti di ogni programma e 
prodotto realizzati all'interno della Xebec. 
Questo impegno costante verso la qualità 
unita ai continui e notevoli investimenti sia 
nei prodotti che nelle 
tecnologie produttive, 
fatto guadagnare alla 
Xebec la sua 
posizione di 
fornitore primario 
di tecnologie 
avanzate per i sistemi 
microcomputerizzati. 



Xebec International 
Via Cola di Rienzo, 149 
00192 — ROMA 
Tel: (06) 350201 
Telex: 620114 FGS 


Distributore: 

Tre Più srl 

Via Asmara 58 - 00199 Roma 
Tel. 06/8394458 - 8395766 
Tlx. 616130 



Company 



Porlo più FORTH 


di Raffaello De Masi 
Settima parte 


Variabili, costanti ed array 

Finora abbiamo sempre utilizzato, per 
maneggiare ed utilizzare valori, lo stack; la 
filosofia e la grande potenza del FORTH si 
basa appunto sull'uso di questa struttura il 
cui accesso è oltremodo rapido. Talora, 
però, anche utilizzando tali strutture, risul- 
ta difficile risolvere complesse situazioni 
numeriche. Uno per tutti, valga l'esempio 
di utilizzo di un certo valore diverse volte 
in un programma od in una definizione, 
per conservare il quale dovremmo ricorre- 
re a complicate manipolazioni dello stack. 
Appare allora conveniente potersi riferire 
a certi valori chiamandoli con un nome, 
cosa che ci consente di evitare lo sforzo di 
rammentare il loro effettivo valore. È il 
caso classico dello statement LET del Ba- 
sic. solo che. in Forth. la cosa è leggermen- 
te diversa. 

Premesso che le modalità operative in- 
terne sono, in Basic come in Forth. prati- 
camente le medesime (vale a dire, viene 
scelta una locazione, ad essa va assegnalo 
un nome, ed in essa viene immagazzinato 
un valore) nel nostro linguaggio esiste una 
differenziazione che nel Basic non c'è. In 
Forth. infatti, è possibile utilizzare per l’in- 
casellamento dei dati due tipi strutturali 
diversi: le costanti e le variabili. La diffe- 
renza tra le due è che la prima rappresenta 
un valore, inserito in una locazione, che 
rimane generalmente sempre eguale a se 
stesso (sebbene possa essere, con qualche 
difficoltà, cambiato) mentre la seconda è 
costituita da una o più locazioni consecuti- 
ve, in possesso di un nome, che possono 
accogliere, volta per volta, valori diversi, 
con contenuto, appunto, variabile. 

1 n queste puntate parleremo delle moda- 
lità di assegnazione e di manipolazione dei 
valori con le costanti e le variabili, nonché 
possibilità di preparare array mono e plu- 
ridimensionali. 


Le Costanti 


Identificare una costante significa prati- 
camente assegnare un nome od un nume- 
ro. secondo la forma 
n CONSTANT nome 

in cui nome è una sequenza di caratteri 
alfanumerici (senza le limitazioni del Basic 
e del Pascal) che, generalmente, non può 
essere lunga più di 31 caratteri. 

Ricordiamo, per inciso, come sia sempre 
possibile ridefinirc una word, per cui, a chi 
non piacesse utilizzare il termine inglese, è 
sempre possibile eseguire 
: CONSTANT COSTANTE ; 
per poter nlilizzare la forma 
n COSTANTE nome 
ad esempio la sequenza 
141 CONSTANT MCMICRO 
consente di conservare il CAP della reda- 
zione nella variabile nominata. 

A tutti gli effetti si tratta di una vera e 
propria definizione; infatti 
; MCMICRO 141 (si sottintende 00) : 
consente lo stesso risultato, ma impiega 
più memoria o più tempo ad essere esegui- 
ta. 

Una volta assegnata, una costante man- 
tiene generalmente sempre lo stesso valore 
o significato. È la regola fondamentale, 
che differenzia queste dalle variabili (si ri- 
cordi che. con le costanti, non esistono 
coinvolgimenti relativi od indirizzi di me- 
moria, ma solo un rapporto diretto defini- 
zione-valore, il che giustifica la loro mag- 
giore rapidità); potrebbe però succedere 
che per un qualsiasi motivo occorra varia- 
re tale valore. Ciò richiede la seguente pro- 
cedura 
ni ' nome I 

Per esempio, per inserire il numero civi- 
co della redazione al posto del primo avre- 

135 ' MCMICRO ! 

Questo determina tre passaggi: l’inseri- 


mento del numero dello stack. la ricerca 
dell'indirizzo della parola MCMICRO e 
l'inserimento del valore 135 al suo posto. 

Le Variabili 


Per definire una variabile in FORTH-79 
basta scrivere la word VARI ABLE seguita 
dal nome della variabile stessa. 
Rifacendosi all'esempio precedente 
VARIABLE MCMICRO 
registra il nome MCMICRO nel diziona- 
rio e riserva 2 byte destinati ad accogliere 
l'eventuale numero da associare ad esso. È 
importante ricordare che. in questo mo- 
mento. tale spazio contiene un valore inde- 
finito (e non zero). Per assegnare di nuovo 
il numero di CAP alla definizione avremo 
141 MCMICRO ! 

In FIG-FORTH la cosa è più semplice. 
In elTetti inizializzazione di variabile ed 
assegnazione di valore sono contempora- 
nei. con la forma 
n VARIABLE nome 
e nel nostro caso 
141 VARIABLE ! 

che abbina gli effetti delle due precedenti 
definizioni in FORTH-79. Come già evi- 
denzialo precedentemente, esiste una 
grande differenza tra il modo operativo 
delle costanti e delle variabili. Chiamando 
le prime, si ottiene direttamente il valore, 
trattandosi, per certi versi, di sequenze di 
operazioni simili alle word. Vale a dire che 
mentre il richiamo ad una costante forni- 
sce direttamente il risultato mettendolo in 
TOS 

MCMICRO (MCMICRO definito come CON- 

STANT) 

(l'esecuzione lascia in TOS il 
valore 141) 

MCMICRO (MCMICRO definito come VA- 
RIABLE) 

lascerà in TOS l'indirizzo del valore 141. 
Per sapere effettivamente il valore di 
MCMICRO occorrerà battere 
MCMICRO (u (lascia il valore in TOS) 
oppure 

MCMICRO «r DUP . 

MCMICRO ? 

qualora il valore voglia essere contempo- 
raneamente visualizzato e conservato in 
TOS. 

Una utile applicazione delle variabili è 
quella, come succede spesso nel controllo 
di strumentazione, di funzionare da conta- 
tori numerici. Ad esempio, una macchina 
contatrice potrebbe essere cosi regolata (in 
FORTH-79) 

VARIABLE CONTATORE (definisce la variabile) 

0 CONTATORE I (inizializza CONTATO- 


RE ad ogni valore od 
oggetto da contare for- 



OUP BEGIN 1 
WILE CONTATORE (inserisce in stack l’in- 
dirizzo della variabile) 
+ 1 (aggiunge 1 al valore 

presente all'Indirizzo) 

REPEAT 

DROP CONTATORE c "ho contato" 'oggetti" 


MCmicrocomputer n. 38 - febbraio 1985 


Le Array 

Ad onor del vero non so se l'articolo 
femminile plurale va bene o no! Le buone 
regole della grammatica italiana, che la 
mia maestra cercava di impormi a bacchet- 
tate sulle ginocchia inorridiscono, come i- 
norridiscono di fronte alle finezze di far 
terminare il plurale delle parole inglesi con 
la s. dimostrando buona conoscenza delle 
lingue straniere e scarsa di quella italiana. 

Comunque le array. come anche il più 
bolso dei programmatori sa. sono un utile 
mezzo di raccolta, in maniera ordinata, di 
dati che hanno, per cosi dire, una matrice 
od un riferimento comune e conviene per- 
tanto incasellare, anzi, schierare in un uni- 
co gruppo. Ad esempio immaginiamo che 
Marinacci, il despota, voglia tenere conto 
di lutti i compensi (magri, anzi magrissi- 
mi). elargiti, durante l'anno, agli instanca- 
bili collaboratori. Secondo quanto visto 
finora dovremmo dimensionare tante va- 
riabili quanti sono i collaboratori: è possi- 
bile. però, utilizzare un gruppo di variabili. 
Tacenti capo allo stesso capoverso cui far 
riferimento in maniera più rapida e, co- 
munque, che occupi meno spazio in mcnio- 

Una array. quindi, può essere definita 
come un raggruppamento logico di varia- 
bili identicamente conformate. Ad esem- 
pio. immaginando che ogni articolo venga 
compensato con una cifra variabile tra le 
500 e le mille lire (non ridete), sarà suffi- 
ciente che ogni variabile sia formata di due 
byte (senza segno, ovviamente) con un va- 
lore massimo immagazzinabile annuo di 
65535 (pura illusione). Per 10 collaboratori 
sarà pertanto necessario disporre di 20 by- 
te riservati, due byte per ciascun collabora- 
tore. 

Cominciamo col definire la variabile con 
un nome. COMPENSI (o magari MISE- 
RIE) va bene come un altro. 

Una volta definita 
VARIABLE COMPENSI 
esisterà in memoria il nome COMPENSI 
con. a disposizione, due byte di spazio ri- 
servati a tal nome (figura I). 

La variabile COMPENSI ha. però, ne- 
cessità. come abbiamo visto, di 20 byte. È 
possibile espandere, per cosi dire, la varia- 
bile COMPENSI aggiungendovi altri 18 
byte. La procedura per eseguire ciò, piut- 
tosto semplice, è 
18 ALLOT 

eventualmente eseguita tutt'insieme con la 
fase precedente. 

A questo punto occorre spezzettare tale 
grossa variabile in 1 0 più piccole di cui fare 
uso. È possibile, pertanto far riferimento 
ad ogni casella utilizzando l'indirizzo di 
partenza ed aggiungendo ad essa il numero 
di byte necessario. 

Poiché questo numero è funzione del 
nome del collaboratore cominciamo ad as- 
sociarli fra di loro nel modo 
0 CONSTANT ANGELETTI 
2 CONSTANT BERGAMI 
4 CONSTANT DE MASI 
6 CONSTANT DE PRISCO 


e cosi via, utilizzando le definizioni di co- 
stanti visto che si tratta di valori non desti- 
nati a cambiare e vista la notevole rapidità 
d'intervento di tale definizione. 

A questo punto la cosa diviene molto 
semplice. Immaginiamo di voler inserire il 
numero 100 nella casella riservala a Giu- 
stozzi: avremo 

100 COMPENSI GIUSTOZZI + ! 
che sarà seguito dall'imperturbabile OK. 

Se. in qualsiasi momento, vorremmo ad- 
dizionarvi un altro valore, ad esempio 235 
basterà battere 

135 COMPENSI GIUSTOZZI + +! 



e per leggere gli emolumenti ricevuti 
COMPENSI GIUSTOZZI + ? 

Per array molto estese (per esempio 
quando la Technimedia diventerà una 
multinazionale ed avrà 500 collaboratori) 
diviene impratico definire una costante per 
ogni posto (sia questo uno o più byte), 
anche perché ciò va a scapito, comunque 
della quantità di memoria a disposizione. 
In questi casi é molto meglio, anche se un 
po' meno pratico, far riferimento ad un 
determinato numero indicandolo con il 
suo valore di scartamento rispetto al valo- 
re iniziale di indirizzo. 

Per esempio, utilizzando il caso prece- 
dente avremo 

VARIABLE COMPENSI (definisce la variabi- 
le compensi) 

499 2 • ALLOT (e costruisce una array di 500 
posti di due byte ognuno). 
Questa nuova versione di COMPENSI 
contiene una array di 500 posti di due byte 
ciascuno e, insieme, ogni numero (due by- 
te) o. per meglio dire, ogni allocazione di 
esso ha un indirizzo che è due volte più 
grande del numero che lo precede. Cosi 
Angeletti é allocato all'indirizzo iniziale. 
Bergami aH’indirizzo + 2, ecc. e l'improba- 
bile collaboratore Zuzzerelloni all'indiriz- 
zo + 1000. La forma generale del valore di 
scartamento all'indirizzo iniziale è: 

Valore = 2x n - 2 


dove n é il numero di matricola progressi- 
vo assegnato al collaboratore. 

A questo punto, per inserire il valore 50 
al collaboratore n. 375 batteremo 
50 COMPENSI 375 2 • 2- + I 
e per leggere il valore corrispondente al 
collaboratore 175 
COMPENSI 175 2 ■ 2- + ? 

Alcune array, usate generalmente, com- 
pletamente o in parte, come strutture di 
dati iniziali hanno, ad esempio, bisogno, 
all'inizio di un programma, di essere inizia- 
lizzate ad un determinato valore. In Basic 
veniva per lo più usata la struttura 
READ... DATA, non scevra di possibilità 
d’errore. In Forlh. oltre che la semplice 
assegnazione uno ad uno dei valori di ar- 
ray (assurdo se si pensa ad array di alcune 
centinaia di posti) è possibile utilizzare una 
struttura diversa, che Ta capo alla word [.] 
(le parentesi quadre non c'entrano, sono 
state qui messe solo per non confondere la 
word con un segno di interpunzione). 

Ad esempio, se il solito Marinacci voles- 
se tenere conto, per lesinare la lira ed evi- 
denziare al terrorizzato e sprovveduto col- 
laboratore, che ingenuamente chiede un 
aumento, i compensi già percepiti, all'ini- 
zio dell'85 avrebbe bisogno di immagazzi- 
nare. nelle caselle dell'array COMPENSI, i 
denari già percepiti immeritatamente dagli 
schiavi. La word [.] va cosi utilizzata 
VARIABLE COMPENSI I 
1500 ANGELETTI ! (imzializza la variabile 
al compenso già perce- 
pito da Angeletti). 

1200, 600, 400, 1300, 

350, 1750, 720, 1485, (e cosi via) 

Per essere più precisi, la word [,] é una 
combinazione delle word ALLOT e !. Essa 
riserva due byte nel dizionario cosi come 2 
ALLOT e conserva il numero inTOS(Top 
Of Slack) in questi due byte, come fa la 
word !. Fin qui tutto chiaro, per quanto 
possa essere chiaro un divulgatore di mez- 
za tacca quale il buon De Masi, in barba al 
detto del mio vecchio professore di fisica 
terrestre che asseriva che quando uno par- 
la e l'altro non capisce, chi parla, la cosa o 
non la sa o non te la vuol dire! 

E fin qui. fintanto che le array da creare 
od inizializzare sono due o tre, la sequenza 
VARIABLE - ALLOT va pure bene. Ma. 
quando le array cominciano a diventare 
più di una. potrebbe essere più conveniente 
automatizzare la procedura. 

Sto scrivendo questo articolo il giorno 
della vigilia di Natale c le montagne di 
Avellino non promettono niente di buono, 
pioggia sicura, neve probabile. E non pro- 
mette niente di buono neppure mia moglie 
che sta decidendo di cambiare l'arreda- 
mento in camera da letto. Come potrò fare 
a conservare l'elenco di tutte le spese di 
questo santo giorno (santo anche, preve- 
do. per l'arredatore con cui discute mia 
moglie) ordinandole secondo voci diverse? 

Occorrerebbe creare diverse array e. vi- 
sto come si sta esaurendo, precipitosamen- 
te, il libretto degli assegni sarebbero vera- 
mente molte. Con VARIABLE la cosa é 
certo possibile, ma sarebbe molto più eon- 


92 


MCmicrocompuler n. 38 - febbraio 1985 


veniente avere una word che creasse auto- 
maticamente una array. 

Occorrerebbe avere una word, ad esem- 
pio proprio ARRA Y o magari MATRICE 
per dirla in italiano, che accetti due para- 
metri. un valore ed un nome cd utilizzi 
questi per aggiungere appunto una array al 
dizionario. Per esempio 

25 ARRAY SPESEDI NATALE 
dovrebbe creare una schiera, anzi un vetto- 
re di 50 byte dal nome SPESEDIN ATA- 
LE. In Forth esiste una sequenza, costitui- 
ta da due word. CREATE e DOES> (in 
Fig Forth < BUILDSe DOES> )che con- 
sente l'operazione ( tanto per intenderci co- 
me il DIM del Basic). Usato da solo. 
CREATE inserisce un nome nel diziona- 
rio. senza però allocare spazio di memoria: 
sarebbe come dire che crea una array inde- 
terminata (in pratica funziona come VA- 
RIABLE ma senza lo spazio dei due byte 
successivi). Al contrario la combinazione 
di CREATE e DOES > I in una definizio- 
ne del tipo 

: nome CREATE ... DOES> ... 
crea una nuova struttura di determinato 
nome. Facciamo un esempio; si voglia 
creare una array di 24 numeri. Definiremo 
inizialmente la word MATRICE che crea 
appunto una array di dimensioni prestabi- 
lite con un determinato nome. Definiremo 
inizialmente 
ARRAY 

(definizione di una array avente spazio per 
n numeri (n = TOS) usando la forma gene- 
rale n ARRAY nome in aggiunte, la word 
cerca l'indirizzo di un elemento inseren- 
done il numero nello stack) 

CREATE (inserisce il nome nel dizionario) 

2 - ALLOT (effettua la relativa allocazione 
di 2n byte) 

DOES> 

SWAP (scambia il numero degli elementi 
e l'indirizzo di base) 

2 • 

+ . (indirizzo = n" elementi ■ 2 + indiriz- 

: (fine definizione) 

In questo modo la sequenza 

25 ARRAY SPESEDINATALE 
crea la nostra array c 
1200 8 SPESEDINATALE ! OK (inizializza l'e- 
lemento 8 è 
valore 1200) 

8 SPESEDINATALE ? 1200 OK (mostra il va- 
lore contenuto 
nell'elemento 
8) 

2 8 SPESEDINATALE + ! OK (aggiunge 2 
all'elemento 
8 ) 

8 SPESEDINATALE ? 1202 OK (mostra il nuo- 
vo valore del- 
l'elemento 8) 

Un'ultima forma di array può essere 
considerata una tabella. Questa è utilizzata 
per sostituire operazioni che impiegano 
lunghi periodi di tempo, come il calcolo dei 
valori dei logaritmi od i seni e coseni di una 
sequenza di angoli. Le tabelle sono molto 
utili ed efficienti quando la funzione è limi- 
tata ad un ridotto valore di argomenti, ed 
elimina la necessità di calcoli ripetitivi ogni 
volta che si ha bisogno della funzione, li 
risvolto della medaglia è dato dalla grande 


quantità di memoria utilizzata. 

TABLE è una word che va cosi definita: 

; TABLE (o TABELLA se si preferisce) 

(la word crea una tabella in cui i 
valori vanno aggiunti con la virgo- 
la inoltre la ricerca del valore la si 
ottiene con la sequenza n ' ele- 
mento nome) 

CREATE 
DOES > 

SWAP (scambia l'elemento e l'indirizzo di 
base) 

2 • (slitta di 2* n' elemento) 

+ (il nuovo indirizzo = indirizzo di base + 
slittamento) 

in (ricerca il valore all'indirizzo) 

Quale applicazione di quanto finora det- 
to. Leo Scanlon presenta un suo program- 
ma. in FORTH PROGRAMMINO, per 
la ricerca dei valori del seno degli angoli 
compresi tra 0 e 360 o già inseriti in una 
tabella. Il procedimento utilizzato è estre- 
mamente semplice e pulito ed è veramente 
un gioiello di programmazione. Noi ne ri- 
portiamo qui la sola definizione 
: SIN 

(fornisce il valore del seno di un angolo 
compreso tra 0 e 360 gradi. Il risultato va 
diviso per 10.000 per la ben nota assenza, 
nel FORTH classico, dei numeri decimali) 
(angolo — seno) 

DUP 270 > 

IF 

360 SWAP - (per valori tra 271 e 360 il seno 
= -seno (360-x)) 

SINE-TABLE NEGATE 
ELSE 

DUP 180 > 

IF 

180- (per valori tra 181 e 270 seno = - seno 
(x - 180)) 

SINE - TABLE NEGATE 

ELSE 

DUP 90 > 

IF 

180 SWAP - (per valori tra 91 e 180) 

(seno = -seno (180-x)) 

THEN 

SINE-TABLE (tra 0 e 90, calcola) 

THEN 
THEN ; 

La definizione va preceduta, una volta 
per tutte, dalla creazione della tabella SI- 
NE-TABLE, nel modo 
TABLE SINE-TABLE 
0. 175. 349, 523 (seni tra 0 e 3/10.000) 

698. 872. 1045. 


9986, 9994. 9998, 10000 (seni tra 87 e 
90/10000) 

Se state leggendo queste parole e non 
avete pensato che c più semplice battere in 
Basic PRINT SIN (30). beh potete anche 
dire a vostra moglie che De Masi non vi 
considera più programmatori della dome- 
nica. Per chi. invece. Io è proprio della 
domenica a mezzogiorno e non capisce 
perché uno debba cosi avvelenarsi la vita, 
provi a calcolare o cercare in una array già 
inizializzata un certo valore in Basic, in 
Fortran od in Pascal, e poi lo faccia in 
FORTH ed il tutto lo si faccia 10 o 20.000 
volte. Per valutare la differenza non serve 
un cronometro, basta la cipolla del nonno. 
Provare per credere. MC 


nnmonin ,,, 

Divisione Computers 

IMPORT-EXPORT 

COMPUTERS VIDEOGIOCHI ACCESSORI 
NASTRI 

CONEGUANO |TV| VIALE CARDUCCI 5 
® 0438124918 - 32988 - 24374 

VENDITA DIRETTA 
SPEDIZIONE 
IN TUTTA ITALIA 

PREZZI IVA COMPRESA 
COMMODORE 

COMMODORE PLUS 4 L 790.000 

Commodore 16 * Registratore 
- intr Basic Inglese 

Commodore 64 + Registratore ... teletonare 

Commodore 64 Executive L i. 500,000 

Floppy Driver 1541 L 500.000 

Stampante MPS BOI L 425.000 

Stampante MPS B02 L. 530.000 

Stampante MPS B03 L 490.000 

Stampante Piotler 15 20 L 320 000 

Monitor 1 702 a colori L 530.000 

SINCLAIR 

SINCLAIR Ol 

Speetrum 486 ' • 6 gioco./ 

intarlacela Uno 
M.crodnvo • interfaccia Uno 
• 4 cartucce con prog r 
Monitor per OL 
Cartucce per Micodnve 
Stampante Seikosha QPSOiS 

AMSTRAD CPC 464 

con Monitor a colori ... teletonare 

ACCESSORI 

Penna ottica con programmi L 83 000 

Tako incisore per diskettes L. 13 000 

Interfaccia Sinclair per Joyst L. 30 000 

Copritastiera per Commodore L 22 000 
Diskettes 5" V. 

-Nashua SF SD flOpz.) L. 33.000 

-Nashua SF OD UOpz.) L, 38.000 

■Nashua DF OD (lOpz.) L. 45.000 

Dischetti colorati " Seminar 

-SF DD HOpt ) L 45 000 

IVA COMPRESA 


CONDIZIONI DI VENDITA 




teletonare 
L 290000 


Spese di spedizione fisse di L. 5.000 

Garanzia 3 mesi dalla consegna 

CONDIZIONI PARTICOLARI 
Al RIVENDITORI 


MCmicrocomputer n. 38 - febbraio 1985 


93 



COMPUTER MAGAZINE 


CON UNA 
CASSETTA 
DI PROGRAMMI 
' MSX 


' PER CHI 
COMINCIA 


CORSO 
DI MSX BASIC 


PUNTATA 


MSX SPRITE STORY 


PHILIPS UNA MACCHINA TUTTA EUROPEA 




[ jv : V 


} 







IL PRIMO ARCHIVIO ELETTRONICO 
ISTRUZIONI: TUTTE LE EQUIVALENZE 



4 


di Maurizio Bergami 



La grafica 

Inizia con questo numero una nuova ru- 
brica, dedicata al software MSX. Questa 
sigla, come molti dei nostri lettori già sanno, 
identifica uno standard hardware /software 
proposto dalla Microsoft, e rivolto a I settore 
dei computer, economici, a! quale hanno a- 
derito numerosi costruttori giapponesi (e 
uno americano, la Spectravideo ) . 

Tutti i computer aderenti allo standard 
sono fra loro perfettamente compatibili; 
questo ci permetterà, quindi, di non fare 
riferimento a nessun modello in particolare: 
tutto quello che diremo sarà valido per qual- 
siasi calcolatore MSX. 

Nell'attesa di ricevere i vostri programmi 
vogliamo iniziare a parlare dellu grafica di 
questi computer, dato che la grafica è sicu- 
ramente uno degli aspetti più affascinanti e. 
perché no. divertenti delTutilizzo di un cal- 
colatore domestico. 

Lo standard MSX offre, da questo punto 
di vista, delle caratteristiche eccellenti, ma 
non sempre è facile diventare rapidamente 
dei ...Giotto dello schermo, anche perché i 
manuali forniti assieme alle macchine sono 
spesso lacunosi ed un poco oscuri. 

In queste pagine ci proponiamo quindi di 
illustrare, nella maniera più chiara possibi- 
le, come sia possibile disegnare facilmente 
sul video sfruttando i numerosi comandi gra- 
fici del Basic MSX. 

Gli schermi grafici 

Vediamo come è organizzato lo schermo 
dei computer MSX. La prima cosa da no- 
tare è che. in realtà, gli schermi sono quat- 
tro e non uno: i primi due sono previsti per 
il testo ed i secondi due. che sono quelli che 
più ci interessano, per la grafica. 

Ecco le loro caratteristiche: 

Schermo 0 (testo): permette di visualiz- 
zare 24 righe di 40 caratteri. 

Schermo I (testo): permette di visualiz- 
zare 24 linee di 32 caratteri. 

Schermo 2 (grafica): questo schermo è 
composto di 49 1 52 puntini (pixel), disposti 
in una matrice di 256 pixel in orizzontale e 
192 in verticale. 


Schermo 3 (grafica): è simile allo scher- 
mo precedente, ma è composto da un nu- 
mero inferiore di pixel: 3072, disposti in 
una matrice di 64x48. 

Quando viene acceso, il computer sele- 
ziona automaticamente lo schermo 0; per 
attivarne un altro si usa il comando 
SCREEN. seguito dal numero corrispon- 
dente allo schermo desiderato. 

Gli schermi grafici però possono essere 
selezionati solo da programma: se si prova 
a dare il comando SCREEN 2 (o SCREEN 
3) in modo diretto sembra non accadere 
nulla, a parte la momentanea sparizione di 
qualsiasi scritta. Il computer infatti torna 
subito allo schermo di testo precedente per 
permettere al programmatore di scrivere 
altri comandi. Questo succede anche quan- 
do termina, o viene arrestata, l'esecuzione 
di un programma: il calcolatore riattiva 
automaticamente uno schermo di testo. 

Prima di vedere come si disegna sugli 
schermi grafici dobbiamo parlare dei colo- 
ri. Il Basic MSX permette di utilizzare 16 
colori, che vengono identificati con un nu- 
mero da 0 a 15: 

0 = trasparente: 1 = nero: 2 = verde: 3 
= verde chiaro; 4 = blu scuro; 5 = azzur- 
ro: 6 = rosso scuro; 7 = celeste: 8 = rosso; 
9 = rosso chiaro: IO = giallo scuro: 11 = 
giallo chiaro; 12 = verdescuro; 13 = ma- 
genta: 14 = grigio: 15 = bianco 

Il primo non è un colore nel vero senso 
della parola; il suo effetto è proprio quello 
di rendere la figura trasparente, il che per- 



mette di riuscire a vedere le eventuali figure 
alle quali essa è sovrapposta. 

Il comando COLOR consente di sceglie- 
re i tre colori di bordo, di sfondo e di primo 
piano; per capire bene il significato di que- 
sti tre termini si può paragonare lo scher- 
mo ad un foglio di carta: il colore di fondo 
corrisponde a quello della carta, il colore di 
primo piano all'inchiostro usato ed il colo- 
re di bordo è il colore della cornice del 
foglio, sulla quale non è possibile scrivere. 

Per lo schermo 0 il colore di bordo è 
sempre uguale a quello di sfondo; negli 
altri tre è invece possibile fissare i tre colori 
in maniera indipendente: 

Provate ad attivare lo schermo I con 
SCREEN I e a dare il comando COLOR 
15,12,14: il bordo diventerà grigio, lo sfon- 
do verde e le scritte saranno in bianco, 
come si poteva prevedere dall'elenco dei 
colori sopra riportato. 

Se si vuole cambiare uno solo dei tre 
colori si può usare COLOR in forma sem- 
plificata (attenzione alle virgole!): 

COLOR x cambia il colore di primo 
piano: 

COLOR ,x cambia il colore di sfondo: 

COLOR „ x cambia il colore di bordo; 
naturalmente al posto di x va usato il nu- 
mero che corrisponde al colore desiderato. 

Come si disegna: PSET e PRESET 

Torniamo ad occuparci dei due schermi 
grafici. Come abbiamo detto, entrambi so- 
no formali da una matrice di puntini. 

Ogni pixel viene identificato da una cop- 
pia di numeri, che corrispondono al nume- 
ro di colonna ed al numero di riga della sua 
posizione nella matrice; il numero di co- 
lonna viene detto coordinata X e quello di 
riga coordinata Y del pixel. 

Una cosa da tener ben presente è che la 
numerazione delle righe e delle colonne 
non parte dal numero I. ma da 0; nella 
figura I viene mostrato l'angolo in alto a 
sinistra della matrice dello schermo 2, con 
il pixel di coordinate (6,8) annerito. 

Per quanto abbiamo detto risulta evi- 
dente che le 256 colonne e le 192 righe della 
matrice dello schermo 2 sono numerate 
rispettivamente da 0 a 255 e da 0 a 191. 

A questo punto verrebbe naturale pen- 
sare che le 64 righe e le 48 colonne dello 
schermo 3 siano numerate da 0 a 63 e da 0 a 
47. Invece non è per niente cosi: la numera- 
zione delle righe e delle colonne dello 
schermo 3 è esattamente quella dello scher- 
mo 2, e vada 0 a 255 c da 0 a 191. 

Cerchiamo di capire come vanno le cose. 
Se sovrapponessimo le matrici dei due 
schermi ci renderemmo conto che una co- 
lonna dello schermo 3 è composta da quat- 


MCmicrocomputer n. 38 - febbraio 1985 


95 




Irò colonne dello schermo 2 (lo stesso di- 
scorso vale anche per le righe): infatti 64 è 
proprio uguale a 256/4. 

Di conseguenza un pixel dello schermo 3 
è composto da 16 pixel dello schermo 2: in 
figura 2 la cosa è visibile relativamente al 
primo pixel in alto a sinistra dello schermo 
3. Come si vede esso é composto dai pixel 
(0.0). (0.1). (0.2). (0.3). (1.0). (1.1). (1.2). 


(1.3). (2.0). (2.1), (2.2). (2,3). (3.0). (3.1). 
(3.2). (3.3) dello schermo 2. 

Per indicare un pixel dello schermo 3 si 
usa una qualsiasi delle coppie di coordina- 
te dei pixel dello schermo 2 che lo compon- 
gono. Il primo pixel in alto a sinistra dello 
schermo 3 viene dunque identificato da 
una delle 16 coppie di coordinate scritte 
sopra. 


Il sistema può sembrare complicato, ed 
in effetti lo é. tuttavia presenta il vantaggio 
che un programma scritto per lo schermo 2 
può essere fatto girare con lo schermo 3 
senza alcuna modifica. 

È comunque possibile trovare una delle 
coppie di coordinate dello schermo 2 corri- 
spondenti ad un pixel dello schermo 3 in 
modo molto semplice. Busta infatti pensa- 
re lo schermo 3 proprio come una matrice 
64 x 48 numerata da 0 a 63 e da 0 a 47 e poi 
moltiplicare le coordinate, in questa matri- 
ce. del pixel interessato per 4. 

Facciamo un esempio: il puntino che. 
sulla matrice dello schermo 3. si trova alla 
decima colonna ed alla 4“ riga, cioè alle 
coordinate (9,3), sarà identificato dalle 
coordinate (36.12). 

Fino ad ora abbiamo parlato della strut- 
tura degli schermi grafici, senza occuparci 
di come sia possibile disegnare su di essi. 

La cosa è semplice: per far apparire delle 
figure basta immaginarle composte da 
puntini ed "accendere" sullo schermo i pi- 
xel corrispondenti. Per accendere un pixel 
in pratica lo si colora con una delle 16 tinte 
a disposizione. 

Vi sono due comandi che permettono di 
colorare un pixel: PSET e PRESET. 

Per accendere il pixel di coordinate 
(X.Y ) si può usare quindi PSET (X.Y). C o 
PRESET (X.Y). C. dove C è il numero 
corrispondente al colore scelto. 

Sembrerebbe che PSET e PRESET sia- 
no assolutamente identici, invece fra loro 
esiste una profonda differenza. Infatti, se 
non viene specificato C. cioè il colore. 
PSET colora il pixel con il colore di primo 
piano specificato nell'ultimo comando 
COLOR, mentre PRESET adopera il co- 
lore di sfondo. Questo significa che. in as- 
senza del parametro C. il pixel acceso da 
PSET sarà visibile, mentre quello acceso 
da PRESET sarà invisibile. 

In pratica PRESET viene usalo soprat- 
tutto per questo, cioè per rendere invisibile 
un pixel precedentemente coloralo. 

Provate a far girare questo programma. 

10 COLOR 15,12,12 

20 SCREEN 3 

30 PSET (130.190) 

40 FOR I = 1TO500 NEXT 



MCmicrocomputer n. 38 - febbraio 1985 



50 PRESET (130,90) 

60 FOR 1= 1TO500:NEXT 
70 GOTO 30 

a questo punto dovreste essere perfetta- 
mente in grado di comprendere che cosa 
fa: la linea IO sceglie il colore verde per lo 
sfondo ed il bordo, ed il colore bianco per il 
primo piano: la linea 30 accende il pixel 
(130,90) e la 50 lo colora come il fondo, 
cioè lo spegne. In pratica si vede un punti- 
no lampeggiare al centro dello schermo. 

Vi è un altro modo di usare PSET (c 
PRESET), ed è questo: PSET STEP (X.Y ). 
C (C può essere omesso). In questo modo, 
le coordinate specificate non sono più as- 
solute, ma relative all'ultimo punto acceso 
(se ancora non è stato acceso alcun pixel si 
assume come ultimo acceso quello di coor- 
dinate 0,0). 

Cerchiamo di capire meglio: PSET 
(10.5) vuole dire "accendi il pixel di coordi- 
nate (10.5)”. mentre PSET STEP (10,10) 
significa “accendi il pixel che si trova alle 
coordinate (A+ 10.B + 5)" dove A e B so- 
no le coordinate deH'ultimo pixel acceso. 
Usando STEP le coordinate del nuovo pi- 
xel vengono calcolate sommando (algebri- 
camente) i numeri specificati alle coordina- 
te del vecchio pixel; in questo caso è quindi 
possibile specificare anche X e Y negativi, 
che normalmente non avrebbero senso. 
Provate a far girare questi due program- 



mi per rendervi meglio conto di come fun- 
zioni PSET in unione a STEP. 

10 COLOR 15,6,6 
20 SCREEN 3 
30 PSET (130.90) 

40 PSET (8,0), 1 
50 GOTO 50 
10 COLOR 15,6,6 
20 SCREEN 3 
30 PSET (130.90) 

40 PSET STEP (8.0). 1 
50 GOTO 50 

le due linee 50 GOTO 50 servono per crea- 
re un loop infinito ed evitare che il compu- 
ter. tornando in modo testo, cancelli lo 
schermo. Per uscire dal loop basta premere 
CTRL STOP. Abbiamo visto che usando 
PSET e PRESET si può specificare il colo- 
re del pixel da accendere. Purtroppo lo 
schermo 2 presenta una limitazione nell'u- 
so del colore. Ogni riga della matrice di cui 
abbiamo parlato può essere vista come una 
successione di 64 blocchi composti da 8 
pixel consecutivi; per ognuno di questi due 
blocchi possono essere usati soltanto due 
colori, uno di sfondo ed uno di primo pia- 
no. Se. con due PSET consecutivi, si tenta 
di colorare con colori diversi due pixel ap- 
partenenti allo stesso blocco, il secondo 
PSET cambierà anche il colore del puntino 
già acceso. I listati I e 2 sono due esempi 
coreografici dell'uso di PSET; come si vede 
i due programmi sono identici, varia solo 
la selezione dello schermo grafico, in ac- 


software 


cordo a quanto detto parlando delle coor- 
dinate di schermo. 

Come abbiamo già specificato, per dise- 
gnare una figura qualsiasi bisogna imma- 
ginarla formata da tanti puntini ed accen- 
dere sullo schermo i pixel corrispondenti. 

Vediamo ad esempio come si fa a trac- 
ciare un segmento orizzontale a partire 
dalla coordinata (50,50) e lungo 20 pixel 
(sullo schermo 2). Si può usare una serie di 
20 PSET del tipo: 

PSET (50,50) 

PSET (51,50) 

PSET (50,52) 


oppure, più comodamente, un ciclo FOR 
NEXT; 

FOR l = 0TO19 
PSET (50+1,50) 

NEXT 

Entrambe le soluzioni sono abbastanza 
scomode: fortunatamente il Basic MSX 
possiede un'istruzione che permette di 
tracciare comodamente qualsiasi tipo di 
linea (ed anche qualcosa in più). 

Il comando LINE 

L'istruzione in questione è LINE, che 
nella sua forma più semplice si usa cosi: 
LINE (X1,Y1)-(X2.Y2),C 
XI e Yl sono le coordinate del punto di 
partenza. X2 e Y2 quelle del punto di arri- 
vo e C il colore: omettendolo la linea verrà 
tracciata nel colore di primo piano. 

Per tornare all'esempio precedente ba- 
sta dunque fare: 

LINE (50,50)-(69.50) 

Come per PSET. anche per LINE le coor- 
dinate sono interpretate relativamente alla 
posizione dell'ultimo punto acceso (che 
può benissimo essere l'ultimo punto di una 
linea ottenuta con LINE) se viene usato 
STEP. Si noti che è necessario specificare 
STEP per entrambe le coppie di coordina- 
te. se si desidera che tutte e due vengano 
considerate relative e non assolute. 

Ecco tre brevi esempi: 

10 COLOR 15.5.5 

20 SCREEN 2 

30 LINE (50, 50)-( 150.50) 

40 GOTO 40 



MCmicrocomputer n. 38 - lebbraio 1985 


97 




software 


10 COLOR 15.5,5 
20 SCREEN 2 
30 PRESET (0.50) 

40 LINE STEP (50,50)-STEP (150.0) 
50 GOTO 50 


10 COLOR 15,5.5 
20 SCREEN 2 
30 PRESET (0.50) 

40 LINE STEP (50.50)-( 150,50) 

50 GOTO 50 

Quella vista è la l'orma semplificata di 
LINE; esiste anche una forma estesa che 
consente il tracciamento sia di linee che di 
rettangoli: 

LINE (X1,Y1)-(X2,Y2),C.B 
la lettera B (che non rappresenta un nume- 
ro). indica al cacolatore che. al posto di 
una linea, va disegnato un rettangolo la cui 
diagonale è la linea che parte dalle coordi- 
nate (XI.YI) e termina alle coordinate 
(X2.Y2). 


nate (X.Y). con il raggio lungo R pixel 
(intesi come pixel dello schermo 2) e di 
colore C. 

Ecco un primo esempio; 

10 COLOR 1,14.14 
20 SCREEN 2 
30 CIRCLE (130.90), 50 
40 GOTO 40 

questo programma disegna un cerchio con 
centro alle coordinate (130.90) e con rag- 
gio lungo 50 pixel. Dal momento che C é 
stato omesso, viene utilizzato il colore di 
primo piano, che la linea 1 0 fissa a I (nero). 

Dando il RUN si vede che il cerchio in 
realtà è un'ellisse: questo è dovuto alle di- 
mensioni dei pixel, che non sono quadrati, 
ma marcatamente rettangolari. 

Per avere dei cerchi "veri", ma anche per 
tracciare ellissi di tutti i tipi, occorre usare 
CIRCLE in quesfaltra forma (attenzione 
alle tre virgole tra C e E): 

CIRCLE (X.Y),R.C.„E 


Con lo schermo 2, CI e C2 devono ob- 
bligatoriamente essere uguali, mentre con 
lo schermo 3 devono essere diversi. 

Usando PAINT bisogna verificare con 
attenzione che la figura da riempire risulti 
effettivamente chiusa: basta infatti un "bu- 
co" sul bordo, anche di un solo pixel, per- 
ché PAINT colori anche esternamente. 

Passiamo finalmente alla forma comple- 
ta di CIRCLE: 

CIRCLE (X,Y),R,C,A1,A2,E 
in questa forma viene tracciato un arco 
dell'ellisse che si otterrebbe non specifican- 
do A I e A2, arco che parte dall'angolo A I 
e termina all'angolo A2 (figura 5). 

Sia Al che A2 vanno indicati in radianti: 
visto che molti si trovano meglio con i 
gradi ecco la formula di conversione: 
angolo in radianti = angolo in gradi x 
6.28/360 

Qualche problema può sorgere cercan- 
do di tracciare un arco che parta prima 



Aggiungendo la lettera F dopo la B il 
rettangolo verrà automaticamente riempi- 
to con il colore C. 

I due programmi RETTANGOLI I e 
RETTANGOLI 2 (listato 3 e listato 4) 
tracciano una serie di rettangoli rispettiva- 
mente vuoti c pieni e servono come esem- 
pio dell'uso esteso di LINE. 

II programma LINE (listato 4), invece, 
permette di vedere cosa succede aggiun- 
gendo al comando prima B e poi BF. 

Il comando CIRCLE 


Oltre a segmenti e rettangoli il Basit- 
ivi SX prevede la possibilità di tracciare cer- 
chi. ellissi ed archi con un solo comando: 
CIRCLE. 

Anche questa istruzione, come la prece- 
dente. ha una forma semplificata ed una 
estesa. Vediamo prima quella semplificata: 
CIRCLE (X.Y).R.C 

disegna un cerchio con centri nelle coordi- 


E indica il rapporto tra il raggio orizzon- 
tale e quello verticale dell'ellisse: se è mag- 
giore di I l'ellisse apparirà come in figura 3. 
altrimenti come in figura 4. 

Modificate la linea 30 del programma 
precedente in: 

30 CIRCLE (130,90), 50..., 1.25 
e provate a dare nuovamente RUN (le vir- 
gole consecutive in questo caso sono quat- 
tro dato che è stato omesso C). 

Abbiamo visto che LINE permette il 
riempimento automatico dei rettangoli di- 
segnati: con CIRCLE la cosa non è possi- 
bile e bisogna ricorrere al comando 
PAINT, che serve appunto per colorare 
delle aree sullo schermo. 

PAINT si usa cosi: 

PAINT (X.Y),C1,C2 

(X.Y) sono le coordinate di un punto qual- 
siasi interno alla zona da colorare: CI rap- 
presenta il colore che si vuole utilizzare e 
C2 indica il colore col quale è stata traccia- 
ta la figura che si vuole riempire. 


dell'origine e termini dopo: la figura 6 do- 
vrebbe aiutare a chiarire le idee. 

Il programma ARCHI (listato 7) con- 
sente di fare pratica col tracciamento di 
archi: gli angoli di partenza e di arrivo 
vanno indicati in gradi e la conversione 
viene effettuata automaticamente. 

Analogamente a PSET e LINE, anche in 
CIRCLE e PAINT si può specificare 
STEP prima di indicare le coordinate, che 
in questo caso verranno interpretate come 
abbiamo visto in precedenza. 

Per questo mese abbiamo finito; abbia- 
mo visto come è organizzato lo schermo 
dei computer MSX dal punto di vista grafi- 
co ed abbiamo esaminato alcuni comandi 
molto potenti, ma rimane ancora molto da 
dire. 

Nelle prossime puntate ci occuperemo 
del comando DRA W e delle famose sprite. 

Nel frattempo, ripetiamo, se avete rea- 
lizzato dei bei programmi in Basic MSX 
inviateceli. MC 


MCmicrocomputer n. 38 - febbraio 1985 




E' UN MARCHIO INFOTEL 


OGGI 




AL COMPLETO SERVIZIO DEI RIVENDITORI 


agente esclusivo per il Lazio: 


_ITALIA_ 


(M33GD 


o personal computer a 16 bit APRICOT, VICTOR 


o floppy MAXELL 
o stampanti ad aghi MITSUI 
ostampanti lowcost CP/JP-80 
o stampanti a margherita JUKI 
o accoppiatori acustici NOVATION CAT, 
ANDERSON- JACOBSON 
oplotter YEW, ENTER C 
odigitizer GTCO 
omouse MOUSE SYSTEM 


agente esclusivo per Lazio e Umbria: 


osoftware J.sofl , MICROSOFT, HABADEX, 
FILEVISION... 

£ . B GRUPPO 

i»cISon LI ' l'bri della casa editrice 



INFO • Roma - via Flavio Domiziano, 10 - tei. 06.51 26700/51 38023/51 27381 


Le basi del 

Data Base 

Data Base Management System: il modello relazionale dei dati 


Il mese scorso dicemmo che la IBM non appoggiò lo sviluppo dei sistemi di basi di dati di tipo reticolare. Uno dei 
motivi fu perché proprio in quel periodo un loro ricercatore. E.F. Codd, stava per gettare le basi di un nuovo 
modello dei dati che avrebbe fatto parlare il mondo per la sua potenzialità unita a una semplicità d'uso da far 
spavento: nacquero così i sistemi relazionali... 

di Andrea de Prisco 
Sesta parte 


I sistemi relazionali 


Codd, a dire il vero, parlava a esperti: a 
gente che da più tempo aveva avuto a che 
fare coi sistemi gerarchici propri di quel 
periodo. Gente che anni prima militava 
nelle file del Cobol e linguaggi analoghi per 
archiviazione. 

I sistemi relazionali, come dice il nome 
stesso, basano tutta la loro essenza sul con- 
cetto di relazione. Questa, per parlare in 
maniera abbastanza spicciola, può essere 
assimilata a una tabella, nel senso che tutti 
voi intendete. Una tabella ( = relazione) è 
formata da tante colonne e tante righe: 
assumeremo la tabulazione in senso verti- 
cale. in altre parole le varie righe saranno le 
registrazioni, opportunamente incolonna- 
te secondo i vari campi. Se ancora non è 
troppo chiaro é solo perché non state pen- 
sando a una qualsiasi tabella. In queste 
pagine, le figure 3. ..8 rappresentano tutte 
delle tabelle. Ripetiamo: nel senso comu- 

Sono dette "Relazioni" solo perché, in 
definitiva, tutti gli elementi di una tabella 
sono tra loro in relazione. Anche questo è 
un concetto del tutto generale, ossia vero 
anche in campi ben lontani dall'Informati- 
ca. Sono in relazione essendo tutti dello 
stesso tipo. Se tabuliamo qualcosa, è per- 
ché i vari oggetti tabulati hanno tutti, ad 
esempio, nella prima colonna un Nome, 
nella seconda un Indirizzo, nella terza un 
N. telefonico ccc. 

Provate a tabulare una persona, un libro 
e un'auto: a meno di salti mortali, a nostro 
avviso non è possibile: sono tre oggetti non 
in relazione tra loro. Una persona avrà un 
nome, un recapito, un n. telefonico; un 
libro avrà un titolo, un autore e una casa 
editrice: infine un'auto avrà una marca, un 
modello e una data di fabbricazione. 

Non bisogna però fare confusione col 
concetto di correlazione, visto nei numeri 
scorsi. La correlazione indica legame tra 
oggetti diversi, quasi a voler sottolineare 
l'appartenenza a relazioni diverse. Fermia- 
moci comunque qui. non serve fare altre 
precisazioni. 


La potenzialità dei sistemi relazionali 
sta nella possibilità di manipolare tabelle 
come fossero normalissime variabili. Nulla 
di strano è sommare due tabelle, fare la 
differenza o il prodotto, come vedremo in 
seguito. Generarne nuove da tabelle già 
esistenti e cosi via. 

Una base di dati di tipo relazionale farà 
appunto uso di relazioni (ricordiamo che è 
esattamente la stessa cosa di tabelle) sia per 
memorizzare informazioni sia per eseguire 
operazioni. Avremo certamente una tabel- 
la per ogni classe usata, ma non faremo 
mai espliciti riferimenti a correlazione tra 
dati. Avremo ad esempio (tanto per cam- 
biare rispolveriamo la nostra amata biblio- 
teca) una tabella con degli utenti, una ta- 
bella contenente tutti i libri prestati. Agen- 
do opportunamente sulle due tabelle, con 
opportuni operatori, potremo ottenere 
nuova informazione a partire da quella di 
base. Ad esempio la stampa dei nomi e 
numeri telefonici di tutti gli utenti che han- 
no in prestilo libri di Luca Goldoni, non 
abitanti a Roma. 

Vedremo come sia (facilmente) possibile 
ciò dopo aver introdotto un concetto mol- 
to importante, alla base di tutto il menage 
relazionale. 

(I prodotto cartesiano 

È opinione diffusa, tenetevi forte, che 
3 x 3 é uguale a 9. Ad esempio (non si sta 
facendo dell'ironia) se tre bimbi desidera- 
no tre caramelle l'uno, la mamma dovrà 
comprarne 9. Questo è un modo di vedere 
l'operazione di prodotto tra numeri. Un 
altro modo di moltiplicare riguarda, sem- 
pre ad esempio, il calcolo dell'area di un 
rettangolo. Se la memoria non inganna, 
area uguale base x altezza. 

Qualcuno si chiederà dove é la diversità 
di operazione tra i due esempi portati. La 
differenza è nel tipo di parametri passati 
alla funzione moltiplicatrice e al tipo di 
risultato ottenuto. Tre volte tre caramelle 
fa nove caramelle; 4 metri per 5 metri fa 20 
metri quadrati, che è una cosa ben diversa 
da un metro e basta (o da una caramella!). 


Possiamo estendere il concetto di moltipli- 
cazione anche a qualcosa di diverso da 
caramelle, numeri o metri. Moltiplichiamo 
ad esempio due insiemi: il primo composto 
da tutte le lettere dell'alfabeto comprese 
tra la A e la C; il secondo composto da tutti 
i numeri interi compresi tra 0 e 2. Il prodot- 
to (detto cartesiano) tra due insiemi finiti è 
definito come un nuovo insieme formato 
da tutte le possibili coppie del tipo (elemen- 
to del primo insieme, elemento del secondo 
insieme). Il primo insieme è dunque: 
[A.B.C.] 

il secondo è 

(0.1.2) 

il prodotto dei due sarà la sequenza di 
coppie; 

(A.0) 


(B.0) 

(B.1) 

(B.2) 

(C.0) 

(C.1) 

(C.2) 

In figura I é mostrato il prodotto carte- 


A 

<A,0> 

( A , 1 ) 

( A ,2 ) 

8 

(B,0> 

( 8 , 1 ) 

(B ,2 ) 

C 

<C,0> 

<C, 1 ) 

<C ,2 > 


0 

1 

2 


siano dei due insiemi: ogni casella, sul tipo 
della battaglia navale, ha come coordinate 
la lettera corrispondente nella sua riga e il 
numero della colonna in cui si trova. In 
figura 2 è mostrato il prodotto cartesiano 
dei due insiemi (Mario. Nino, Ugo] e [San- 
dra. Paola. Chiara], Posto che i sei amici 
decideranno un giorno di andare in disco- 
teca. il prodotto cartesiano rappresenta 
tutte le possibili ( = lecite) coppie per i balli 
lenti. 


100 


MCmicrocomputer n, 38 - febbraio 1985 


Mario 

Mar io , Sandra 

Mar io ,Pao 1 a 

Mar io ,Ch iar a 

Nino 

Nino , Sandra 

Nino , Paola 

Nino «Chiara 

Ugo 

Ugo , Sandra 

Ugo ,Paola 

Ugo /Chiara 


Sandra 

Paola 

Ch iara 


Il discorso si fa del tutto analogo, par- 
lando di basi di dati, di relazioni e prodotto 
tra tabelle. Come vedremo, moltiplicare 
una tabella per un'altra significa accoppia- 
re a ogni elemento della prima tabella, uno 
per uno. tutti gli elementi della seconda 
tabella. 

Gli operatori relazionali 

...sono manipolatori di tabelle. Come 
dicevamo prima, è possibile compiere de- 
terminate operazioni per ottenere da tabel- 
le date, nuove relazioni. L'operazione più 
semplice è la somma: non fa altro che sal- 
dare, l'una di seguito all'altra, due tabelle 
date, costruendone una terza. S'intende 
che le due tabelle saranno dello stesso tipo: 
avranno ciascuna gli stessi campi, o uguali 
nomi per le varie colonne se preferite. 

Se ad esempio abbiamo una tabella A 
contenente un certo numero di utenti, e 
una tabella B contenente un'altra quantità 
di utenti, la somma di queste costruirà una 
tabella C contenente sia gli elementi di A 
che quelli di B. In figura 3 è mostrata un'o- 
perazione di somma. 


Noma Cognome Talafono 

Carlo (Manna 1 (3449665 


Luca (Tarli (5765493 


Nicola Ifllllmandi 15343335 


Fabio IGrattaschi 16784531 


M I NUS 



Carlo I Manna! 13445665 


Fabio (Grattaseli i (8784531 



Figura 4 - Sottrazione tra due relazioni. 

Tabella 1 





Nicola Irti 1 imandl (5343235 


Fabio (Grattaseli i (8784531 



Carlo I Manna! 13445665 


Luca (Tari! 15765453 


Nicola (ftlllmandi (S343235 

Fabio (Grattaseli I 18784531 


La differenza tra due tabelle è l'insieme 
delle registrazioni contenute nella prima, 
non contenute nella seconda. La figura 4 
mostra quanto appena detto. 



Figura 6 - Selezioniamo i soli medici. 


In figura 5 è mostrata una tabella di 
professionisti. Prima di mostrare il prodot- 
to fra tabelle, vediamo due operatori per 
costruire nuove tabelle a partire da una 
sola tabella data. Questi sono i classici SE- 
LECT e PROJECT, il primo seleziona al- 
cuni elementi, l'altro alcuni campi. Per se- 
lezionare elementi da una relazione, é ne- 
cessario indicare una condizione da supe- 
rare per appartenere alla nuova tabella. Se 


scriviamo qualcosa del tipo: 

Tabella2 = SELECT Tabellal with Profes- 
sione = Medico 

vogliamo in Tabella2 tutti i Medici di Ta- 
bellal. In figura 6 vediamo la Tabella2 
dopo il SELECT. 

Per eliminare alcune colonne si usa l'o- 
peratore PROJECT, seguito dalla tabella 
sorgente e dalla lista dei campi da conser- 
vare. In figura 7 abbiamo "proiettato” Ta- 
bella2 sui soli campi Nome e Città. Avre- 
mo scritto qualcosa del tipo: 

Tabella3 = PROJECT Tabella2 on Nome. 
Città 

E veniamo ai prodotti tra tabelle. Come 
qualcuno avrà già subdorato l’utilità di 


Nome Citta 1 


Rossi 

Roma 

Net-t i 

Milano 



Tabella prestili 



Figura 9 - Tabella dei materiali in prestito. 

moltiplicare tra loro due tabelle non è mol- 
to evidente. Molto meglio è fare prodotti 
sotto condizione: inutile sviluppare tabelle 
enormi se poi gli elementi che a noi interes- 
sano sono solo un piccolissimo sottoinsie- 
me. Per fare un esempio, diamo uno sguar- 
do alle figure 8 e 9. La prima è una tabella 
di Utenti di una biblioteca, la seconda la 
tabella dei vari Libri in prestito. Moltipli- 
cheremo queste due tabelle, restringendo il 
prodotto ai soli accoppiamenti con campo 
PrestatoA (di TabellaPrestiti) uguale al 
campo Nome (di TabellaUtenti). L'opera- 
tore si chiama JOIN (trad. congiungere); 
scriveremo qualcosa del tipo: 

Tabella = TabellaPrestiti JOIN TabellaU- 
tenti with PrestatoA = Nome 
otterremo cosi quanto mostrato in figura 
10: una tabella completa dei libri prestati 
con relativo indirizzo e telefono dell'Uten- 


MCmlcrocomputer n. 38 - febbraio 1985 


101 



Figura II) ■ Prodotto tra tabella pres, 

te che ha in prestito il testo indicato all'ini- 
zio di ogni riga. 

Tutti gli operatori visti finora permetto- 
no anche operazioni più semplici e intuiti- 
ve. Considerato che una tabella può essere 
formata da una sola riga (un solo elemen- 
to). adopereremo l'operatore di somma 
per aggiungere, ad esempio, nuovi utenti 
alla biblioteca; useremo l’operatore di dif- 
ferenza per togliere, sempre ad esempio, un 
elemento da TabellaPrestito essendo stato 
riconsegnato un libro. 

Le operazioni di SELECT, PROJECT e 
JOIN si useranno anche per recuperare un 
elemento. Torniamo alle figure 8 e 9, se 
vogliamo il numero di telefono dell'utente 
che ha in prestilo il Decamerone, compire- 
mo i seguenti passi: 

UnLibro = SELECT TabellaPrestiti with Ti- 
tolo = Decamerone 

ci permetterà di accedere al testo interessa- 
to: UnLibro è una tabella composta da un 
solo elemento, esistendo un solo testo in 
TabellaPrestiti con Titolo = Decamerone. 
La successiva operazione sarà: 

UnaRiga = UnLibro JOIN TabellaUtenti 
with PrestatoA = Nome 


con la quale otterremo di fatto un'altra 
tabella formata da una sola riga, precisa- 
mente la seconda della relazione di figura 
IO. Infine con: 

Telefono = PROJECT UnaRiga on Telefono 
avremo una tabella (ammesso che si possa 
ancora chiamare tale) formata da un solo 
elemento e un solo campo. 

PRINT Telefono 
restituirà: 

421227 

che è il numero che cercavamo. 

Per finire, risolviamo il problema posto 
all'inizio dell'articolo ossia la stampa dei 
nomi e numeri telefonici di tutti gli Utenti 
che hanno in prestito libri di Luca Goldo- 
ni. non abitanti a Roma. 

Per questioni di spazio non visualizzere- 
mo la situazione con opportune figure, ma 
faremo un ragionamento verbale. 

Supponiamo che la tabella degli utenti 
abbia i seguenti campi: Nome, Indirizzo. 
Città, Telefono. La tabella dei materiali 
prestati i campi: Titolo, Autore. Presta- 
toA. DataConsegna. PrestatoA. come nel- 
l'esempio precedente, è il nome dell'utente 
che ha in prestito il testo. 


U basi del nato Base 
La prima operazione da compiere è una 
selezione tra tutti i testi, di quelli con auto- 
re = Goldoni. Scriveremo: 

LlbrlGoldoni = SELECTTabellaPrestiti with 
Autore = Goldoni 

Seguirà un JOIN con gli utenti, con con- 
dizione PrestatoA = Nome: 

Prestiti = LibriGoldoni JOIN TabellaUtenti 
with PrestatoA = Nome 
Abbiamo la tabella completa (con tutti i 
campi) di tutti gli utenti che hanno in pre- 
stito opere goldoniane. Restano due ope- 
razioni: 

PrestitiNonRomani = SELECT Prestiti with 
Città ^Roma 

per togliere le righe con Città ^ Roma e 
infine: 

UtentieTelefoni = PROJECT PrestitiNonRo- 
Nome, Telefono 

Possiamo ora stampare la tabella cerca- 
ta: 

PRINT UtentieTelefoni 


Alcune precisazioni 

Quanto mostrato finora rappresenta il 
"facile" dei Data Base Relazionali. Codd, 
l'inventore lo definisce minimo criterio di 
reiazionabilità: dati in forma tabellare e 
operatori SELECT, PROJECT e JOIN. 
La teoria di questi Data Base è andata 
molto oltre: si parla di domini, calcolo re- 
lazionale di ennuple, calcolo relazionale di 
domini, dipendenze funzionali, forme nor- 
mali e altro. Il tutto per l'integrità dei dati e 
una buona suddivisione in Tabelle per mi- 
nimizzare la ridondanza di dati. 

In questa sede non ci siamo occupati del 
difficile: sarebbe risultato un discorso o 
troppo lungo (qualche decina di pagine 
fitte-fitle) o dedicato a esperti del settore. 

Si è voluto mostrare semplicemente il 
modello dei dati e come si manipolano le 
relazioni per sfruttare appieno l'informa- 
zione di cui si dispone. Ricapitolando: una 
base di dati relazionale è un insieme di 
tabelle, corrispondenti alle classi viste pre- 
cedentemente. Nessun esplicito riferimen- 
to è fatto per correlare dati di tabelle diver- 
se. La correlazione avviene costruendo, 
tramite opportuni operatori, nuove tabel- 
le. Il meccanismo è detto delle chiavi ester- 
ne. In generale una chiave è un attributo 
che identifica univocamente un'ennupla 
(es.: la matricola di uno studente). La chia- 
ve si dice esterna se identifica univocamen- 
te un elemento di un'altra tabella. In figura 
9, i nomi presenti nella colonna PrestatoA 
sono chiavi esterne per TabellaUtenti: o- 
gnuno identifica un elemento. 

Per fare il JOIN tra due relazioni è neces- 
sario che ogni chiave esterna esista nella 
tabella corrispondente come chiave. Il 
JOIN mostralo in figura 10 sarebbe fallito 
se, ad esempio, l'utente Pallisi non risultas- 
se in TabellaUtenti. 

Ed era giusto: se un utente chiede in 
prestito un libro, oltre a inserire la sua 
richiesta in TabellaPrestiti, si deve garanti- 
re che l’utente sia anche in TabellaUtenti. 


Ospite o a sé stante? 

Cosa vorrà mai dire il titolo di questo riquadro? 

Un'altra delle stranezze dei sistemi di gestione per basi di dati, qualcuno penserà! Forse. 

Termina con questo numero la nostra piccola rassegna sui modelli di dato dei Data Base. 
Abbiamo visto il modello semantico dei dati, quello gerarchico, il reticolare e questo mese il 
relazionale. 

Prima di passare ai sistemi commerciali per microcomputer, è d'uopo un'importante precisa- 
zione. Più volte é stato detto che un sistema per Basi di Dati è (praticamente) un linguaggio di 
programmazione particolarmente orientato al trattamento di moli enormi di dati. Nelle prime 
puntate abbiamo anche parlato del Basic-micatanlo. inventato di sana pianta, per mostrare 
come sia possibile definire una base di dati e operare su essa per manipolare dati. Come il Basic- 
micatanto. anche i linguaggi commerciali dividono l'intero set di istruzioni in due categorie: 
istruzioni per la definizione della Base di Dati (le varie classi o le varie relazioni adoperate) c 
istruzioni per modellare la conoscenza procedurale ossia per scrivere gli opportuni programmi 
applicativi, ad esempio stampa di tabulati o ricerca e modifica di elementi che soddisfano 
particolari condizioni. 

A monte di tutto ciò. i linguaggi per il trattamento di Basi di Dati possono essere ospiti (di un 
linguaggio conosciuto) o a sé stanti. Un linguaggio a sé stante dispone di tutte le strutture proprie 
della programmazione, in altre parole è un linguaggio completo. I linguaggi ospite, invece, sono 
un insieme di istruzioni specifiche per il trattamento di Basi di Dati, immerse in un linguaggio 
standard che. normalmente, non dispone di tali meccanismi. Possiamo vedere il Basic-micatanto 
come un linguaggio ospite dell'arcinoto Basic. Molti dei costrutti sono essenzialmente Basic e 
basta. 

Pregi e difetti delle due possibilità non è facile elencarli. A titolo indicativo possiamo dire che 
un linguaggio ospite ha generalmente operatori molto potenti, non dovendo fornire anche le 
relative strutture di controllo già presenti nel linguaggio che lo ospita. Se però questo ha strutture 
proprie non troppo potenti, il risultato finale può essere poco allettante. I linguaggi a sé stanti, di 
contro, non avendo a che fare con strutture di controllo esterne, non soffrono mali di adattabilità 
ma, dovendo fornire sia strutture di controllo che strutture per la definizione e la manipolazione 
di dati, difficilmente brillano in tutte le dimensioni. 


102 


MCmicrocomputer n. 38 - febbraio 1985 



ULTIMISSIME TELEXl PER SUSY Zi TOUCH PRO UITH JOYSTICK Ut. ISO. 700. • DISKETTE STORAGE (CAPACITY 1 1 0OPCS) UT. 22. 800. • JOHN 
BELL A/D CARO 166.000 • REPLAY ][ CARO 146.500 • PROPI WRITER 513.000 • 8748/49 PIPU PROGRAMER 415.000 • NEW EPROM MRITER 136.700 • 
IMAGE PROCESS CARO 605.600 • SUPER PARALLEL CARO 327.000 • TELEFAX CARO 537.000 • PORTABLE PC(N/2 DRIVES , 1PI0NIT0R 3.700.000 • 



di Pierluigi Panun/i 
Quinta parte 


La scarsa pianala abbiamo analizzato le 
possibilità Mio Z80 di effettuare operazioni 
aritmetiche e logiche tra due operandi dei 
quali in genere uno è l 'accumulatore e l 'altro 
è un registro o il contenuto di una locazione 
di memoria, indicata esplicitamente oppure 
indirettamente tramite i registri indice IX ed 
IY o la coppia HL. 

Questa volta ci occuperemo delle istruzio- 
ni logiche di rotazione e di sliift ( in breve, 
istruzioni di "slcew" ) e delle istruzioni di 
manipolazione dei singoli bit. 

In tutto quanto segue ricordiamo, soprat- 
tutto ai meno esperti, che parleremo di byte 
formati da 8 bit; tali bit saranno indicati in 
modo tale da identificarne immediatamente 
la posizione nell'ambito del byte: il bit meno 
significativo I quello più a destra, tanta per 
intenderci ) sarà indifferentemente indicato 
con “LSB" f Least Significarli Bit I o con 
"hit 1} ", il successivo I proseguendo verso 
sinistra) sarà chiamato "hit I" e cosi via fino 
all'ottavo bit posto più a sinistra e chiamalo 
indifferentemente con "MSB" I Mosi Signi- 
ficarli Bit) o "bit 7". 

Per evitare ulteriori confusioni ricordia- 
mo clic nel coniare i bit si parte da 0 per 
arrivare a 7 ... intesi ?! 

Le istruzioni di rotazione 


Le istruzioni in esame, dette generica- 
mente in gergo le "rotate” (è inglese!), con- 
sentono di effettuare un'operazione a pri- 
ma vista insolita e apparentemente inutile 
in quanto, abituati come siamo alla nota- 
zione decimale, non vi troviamo un effetti- 
vo riscontro. 

Esse si dividono in "rotazione verso de- 
stra" ed in "rotazioni verso sinistra", en- 


trambe a loro volta suddivise a seconda se 
"attraverso il bit di carry" oppure no. 

Ma andiamo con ordine iniziando dalle 
quattro istruzioni che si possono ottenere 
con le condizioni di cui sopra e relative 
all'accumulatore. 

Analizziamo perciò l'istruzione RRA 
che sta per "Rotate Righi Accumulator". 
facendo riferimento alla figura la. 

In particolare, come indicato schemati- 
camente nella figura grazie all'uso delle 
frecce, i singoli bit dell'accumulatore ven- 
gono traslati di una posizione verso destra; 
ciò potrebbe comportare la perdita del bit 
meno significativo. 


Invece tale bit viene “salvato" nel Carry: 
inoltre, in questo caso, il posto lasciato 
vuoto dal bit 7 nel suo spostamento verso 
destra viene occupato dal valore "vecchio" 
del Carry. che a sua volta viene cosi “salva- 
to" dal momento che è stato rimpiazzato 
precedentemente. 

Attenzione: tutte queste "operazioni" di 
spostamento avvengono "istantaneamen- 
te" e cioè senza possibilità di errori. 

L'analoga RLA ("Rotate Left Accumu- 
lator"). come si può vedere nella figura Ib. 
effettua una traslazione dei bit verso sini- 
stra. portando il bit 7 nel Carry, ed il "vec- 
chio" Carry al posto del "vecchio" bit I) . 
rimasto vuoto. 

Abbiamo dunque visto le due "rotate" 
che lavorano "attraverso il Carry". 

Viceversa esistono le analoghe che coin- 
volgono differentemente il Carry: l'istru- 
zione RRCA ("Rotate Righi Circular Ac- 
cumulator"), come si vede in figura le. ef- 
fettua una traslazione circolare dei bit del- 
l'accumulatore verso destra ed in partico- 
lare il bit 0 viene reinserito al posto vacan- 
te lasciato dal "vecchio" bit 7 ed inoltre 
viene memorizzato nel Carry. 

Ecco la differenza fondamentale: in que- 
sto caso il contenuto del Carry viene perso. 

Analoghe considerazioni si possono ef- 
fettuare per l'istruzione RLCA ("Rotate 
Left Circular Accumulator"), per la quale 
rimandiamo alla figura ld. 

Abbiamo dunque visto quattro tipi fon- 
damentali di "rotate": ne abbiamo parlato 
all'inizio in quanto queste istruzioni erano 
quelle già presenti (e le uniche del genere!) 
nel set di istruzioni dell’8080, che è stato 
notevolmente ampliato dai progettisti del- 
la Zilog in fase di progettazione dello Z80. 

In particolare sono state aggiunte tutte 
le istruzioni di cui parleremo nel resto del- 
l'articolo. 

Ecco introdotte le generalizzazioni delle 
quattro istruzioni viste finora, che si chia- 
mano "RR r". "RL r". "RRC r"ed “RLC r". 



104 


MCmicrocomputer n. 38 - febbraio 1985 




cioè rispettivamente "Rotate Righi". 
"Rotate Left". "Rotate Right Circular" e 
"Rotate Left Circular" e dove la "r" sottin- 
tende un registro qualsiasi (B. C. D. E. H. 
L. nonché lo stesso A) oppure una locazio- 
ne di memoria indirizzata da HL nonché 
indirettamente e con il meccanismo del 
"displacement" tramite i registri indice IX 
ed IY- In tutti questi casi il meccanismo é 
assolutamente identico alle corrispondenti 
istruzioni analizzate in precedenza. 

Sono state aggiunte inoltre altre tre i- 
struzioni di "shirt", relative ad un operan- 
do "generalizzato" (come quello preceden- 
te. tanto per non ripeterci). 

In particolare esiste la funzione "SLA r” 
(‘'Shifl Left Arithmetical") la quale, come 
si può vedere dalla figura 2a, effettua una 
traslazione dei bit verso sinistra “ aritmeti- 
camente" e cioè riempiendo il posto prece- 
dentemente occupato dal bit 0 con uno 0 e 
"salvando" il "vecchio" bit 7 nel Carry, che 
cosi viene distrutto. 

Vi è poi la “SRA r” ("Shift Right Arith- 
metical") che effettua, come si vede in figu- 
ra 2b, una traslazione verso destra, salvan- 
do il "vecchio" bit 0 nel Carry (che si 
distrugge) e viceversa mantenendo il vec- 
chio valore del bit 7 e cioè lasciando inalte- 
rato il "segno" del byte: ciò è molto utile 
per dividere ad esempio per due un numero 
che può essere anche negativo. 

Se questo comportamento non è deside- 
rato. allora si può usare la "SRL r” ("Shift 
Righi Logicai") che e differenza della pre- 
cedente, come si può vedere in figura 2c, 
imposta un valore 0 nel bit più significati- 
vo dell'operando. 

Facendo un po' di conti abbiamo, per 
quanto riguarda le istruzioni "nuove" del- 
lo Z80, quattro "Rotate" più tre "Shift", 
ognuna relativa ad un operando a scelta 
tra 10: in totale abbiamo la bellezza di 70 
istruzioni in più rispetto al vecchio 8080, e 
non finiscono certo qui... 

Due "Rotate" un po' particolari 

Facendo riferimento alla figura 3 vedia- 
mo due altre istruzioni di "rotate", chia- 
mate RLD e RRD (rispettivamente "Ro- 


tate Left Digit" e "Rotate Right Digit”), 
veramente inconsuete. 

In particolare operano tra l'accumulato- 
re e la locazione di memoria puntata dalla 
coppia HL (chissà perchè questa scelta, 
unica nel suo genere, da parte dei progetti- 
sti) ed effettuano una traslazione rispetti- 
vamente verso sinistra e verso destra del 
"nibble meno significativo" dell'accumu- 
latore e dei due "nibble" della locazione di 
memoria già individuata. 

Detto che ancora una volta tutte le ope- 
razioni di traslazione avvengono contem- 
poraneamente. queste due strane istruzio- 
ni servono più che altro quando si ha a che 
fare con numeri espressi in BCD. ma non ci 
soffermeremo oltre sull'argomento. 

Istruzioni di manipolazione 
dei singoli bit 

Sono queste delle istruzioni veramente 
potenti ed interessanti, che ogni program- 
matore desidererebbe vedere nel set di i- 
struzioni del proprio microprocessore pre- 
ferito, ma che invece anche nei “micro" a 
16 bit è raro trovare. 

In parole povere consentono di testare 

10 stato di uno degli 8 bit di un operando, 
come pure di setttare o resettare uno degli 
8 bit. 

In dettaglio abbiamo le “ istruzioni BIT 
b. r" dove “b" può assumere a piacere un 
valore tra 0 e 7 ed “r" è il solito "operando 
generalizzato" che ormai conosciamo mol- 
to bene. 

Abbiamo parlato di "istruzioni BIT" in 
quanto, facendo un po’ di conti, in questo 
caso abbiamo come al solito 8 scelte (il 
numero di bit) moltiplicate peri IO operan- 
di: un totale di 80 istruzioni BIT 

Per vedere il funzionamento di questa 
funzione bisogna ragionare come segue: se 

11 bit in esame è zero (resettato) allora il 
"(lag di zero" è posto "correttamente" ad I. 
come nei casi in cui, ad esempio, l’accumu- 
latore è nullo. 

In termini tecnici, indubbiamente molto 
oscuri e che sottintendono quasi un sottile 
gioco di parole, "il negato del bit in esame è 
posto nel (lag di Zero": il gioco di parole 


può nascere dal fatto che "se il bit è 0 . il 
ilag di Zero è I" e viceversa "se il bit è I . il 
flag di Zero è 0 ". Sembra buffo, ma basta 
ragionarci un attimo per convincersi che in 
realtà non potrebbe essere altrimenti, in 
quanto l'operazione è strettamente logi- 

Altre ottanta istruzioni provengono dal- 
le "SET b, r" ed altre ottanta ancora dalle 
"RES b. r" che rispettivamente pongono 
ad "1" e a “0 " il bit "b" (specificato nell'i- 
struzione) deH'“operando generalizzato" 

E gli altri flag? 

Abbiamo sinora visto il comportamento 
del flag di Carry nelle "Rotate" e dello 
"Zero" nelle BIT: per completezza indiche- 
remo ora come si comportano gli altri bit 
di flag, relativamente ai più importanti. 

Le prime quattro "Rotate”, originarie 
dell'8080, ovviamente influenzano il Car- 
ry, mentre non alterano minimamente lo 
"Zero" ed il "Sign", viceversa pongono a 0 
il flag "N". 

Invece le "rotate generalizzate" e le 
"shift generalizzate" influenzano il "Car- 
ry" (ovviamente!), lo "Zero" ed il “Sign" e 
pongono al solito il flag "N" a zero. 

Per quanto riguarda le "digit rotate", 
queste si comportano come le precedenti 
ad eccezione del flag di Carry che non vie- 
ne minimamente sfioralo. 

Dopo aver detto che le SET e RES non 
alterano alcun flag di sorta, non rimango- 
no che le BIT : come detto alterano il flag 
“Zero", mentre non toccano il Carry, azze- 
rano il flag "N". mentre infine lasciano 
sconosciuto e perciò casuale lo stato del 
flag di segno. 

Con questo abbiamo terminato la rasse- 
gna di queste istruzioni "bit oriented". del- 
le quali lo Z80 può ben vantarsi nel para- 
gone con gli altri microprocessori ad 8 bit. 
quali il 6502 o il 6800. tanto per citare al 
solito i più noti. 

La prossima volta conosceremo altre 
"perle" del ricchissimo set di istruzioni del- 
lo Z80: i salti e le chiamate di subroutine, 
anche queste nettamente superiori come 
numero e qualità rispetto alla concorrenza . 


MCmicrocomputer n. 38 - febbraio 1985 


105 




Algoritmi di ordinamento 

E mollo probabile che chi ha comincialo 
da poco a programmare un computer si tro- 
verà. ira non mollo, alle prese con un insie- 
me di elementi da ordinare in maniera pre- 
si abilita. E proprio a questo tipo di problemi 
che vogliamo introdurre il meno esperto pro- 
ponendogli qualcuna delle consuete soluzio- 


Ordinamento e algoritmi 

Ci sono alcuni casi in cui una lista ordi- 
nata semplifica notevolmente il nostro la- 
voro. Ad esempio, avendo un insieme di 
nomi, potremmo pensare di disporli in or- 
dine alfabetico per avere un accesso più 
rapido alla lista stessa: pensate infatti co- 
me sarebbe scomodo consultare un elenco 
telefonico con i nomi sistemati alla rinfusa! 
Ecco un primo caso in cui un algoritmo di 
ordinamento ci ritorna utile. L'insieme in 
questione potrebbe essere numerico: ad e- 
sempio in matematica, quando si ha a che 
fare con vettori o matrici per la risoluzione 
di qualche particolare problema, è necessa- 
rio che gli elementi delfarray siano siste- 
mati in ordine crescente ed anche in tal 
caso si riconosce subito la necessità di un 
algoritmo di ordinamento. 

Visto che abbiamo più volte introdotto 


la parola "algoritmo", cerchiamo di met- 
terci d'accordo sul suo significato. 

Possiamo pensare ad un algoritmo come 
ad una sequenza finita di operazioni da 
svolgere per risolvere un certo problema. I 
vari passi che lo compongono (che debbo- 
no essere in numero "finito") devono an- 
che essere descritti in maniera "non ambi- 
gua". nel senso che ciascuno di essi deve 
avere un significato che non induca in erro- 
ri di interpretazione. Forse é inutile dirlo, 
ma la definizione vuole che un algoritmo, 
per essere “efficiente", debba essere com- 
posto da passi ciascuno dei quali svolgibile 
in tempo finito da una macchina. 

A questo punto non ci resta che entrare 
nel vivo dell'argomento descrivendo un al- 
goritmo di ordinamento molto usato. In 
questo e negli altri casi potremo riferirci 
solo ad elementi numerici senza nessuna 
perdita di generalità. Per il passaggio im- 


mediato ad elementi alfabetici, basterà 
considerare una lettera “minore o maggio- 
re" di un'altra secondo il posto che essa 
occupa nell'alfabeto dalla A alla Z. 

Ordinamento a bolla (Bubblesort) 

È un metodo di ordinamento struttural- 
mente lento se applicato a liste molto "di- 
sordinate" ma può però rivelarsi abbastan- 
za produttivo se applicato a liste parzial- 
mente in ordine. 

L'applicazione del metodo è molto sem- 
plice. Immaginiamoche i numeri posseduti 
siano disposti in fila l'uno dietro l'altro e 
che sia possibile identificare in questa lun- 
ga coda, che chiameremo vettore, la posi- 
zione di ciascun elemento facendogli corri- 
spondere un indice. Cosi il primo elemento 
diventa l'elemento v(l), il secondo diventa 
l’elemento v(2) e cosi via fino all'ennesimo 
v(N) (figura I ). Se i numeri del vettore 
sono ordinati casualmente, per disporli in 
ordine crescente possiamo pensare di effet- 
tuare dei confronti tra coppie e di scambia- 


re il primo elemento della coppia con il 
secondo se essi non sono in ordine crescen- 
te o di non effettuare alcuno scambio se 
tale ordine è rispettato. Per capire meglio si 
faccia riferimento all'ordinamento pratico 
di 5 elementi schematizzato in figura 2 do- 
ve abbiamo supposto che l'ordine iniziale 
sia il seguente: 

7 4 5 3 2. 

Cominciamo con l'esaminare la prima 
coppia: dato che 7 è maggiore di 4. il primo 
numero dovrà prendere il posto del secon- 
do e viceversa. Compiuta tale operazione, 
il nuovo ordine diventa: 

4 7 5 3 2. 

Ripetiamo il procedimento sul nuovo 
insieme considerando quelli che ora sono il 
secondo e il terzo elemento, cioè 7 e 5. 
Anche in questo caso bisogna effettuare lo 
scambio e dopo di esso la lista risultante é: 
4 5 7 3 2. 


106 


MCmicrocomputer n. 38 - febbraio 1985 


TAO J>VE ELEMENTI 



Proseguendo in questo modo, con altri 
due scambi indispensabili otterremo la se- 
guente disposizione: 

4 5 3 2 7 . 

Si osserva facilmente che la lista non è 
ancora in ordine ma l'effetto più importan- 
te ottenuto è di aver portato l'elemento più 
grande dell'insieme (7) ad un estremo (la 
sua posizione definitiva), e ciò è un fatto 
evidentemente rilevabile su liste di qualsia- 
si lunghezza. Possiamo allora ripetere il 
procedimento sulla sottolista composta 
dai numeri: 

4 532 

che dopo il numero di confronti e scambi 
richiesti (N-2) diventa: 

4 3 2 5 

e si ottiene di porre nella posizione definiti- 
va anche il numero 5. 

In generale, ripetendo la sequenza de- 
scritta per ogni sottoinsieme non ordinato 





okù/mahent o o Bolla 



EOA C-A To N-A 

r -0 

FoA K - A To N-t 
IF V(Kt-t) » AM 

THEn Aoo 

V(k)-vG <+<) 
Vfie)itz.T 
F= ± 

Aoo NExT K 
IF F-O THeN SToP 
KJtxT i 


usra 

OAbìURTF 




vie in Basi < . 


MCmicrocomputer n. 38 - febbraio 1985 


107 



ottenuto con il procedimento precedente, 
si riesce a mettere i vari elementi dell'insie- 
me in un ordine crescente. 

Il procedimento di scambio, che appare 
abbastanza immediato sulla carta, se im- 
plementato su una macchina ha bisogno di 
utilizzare un artificio per poter funzionare 
bene. Per renderci conto della difficoltà, 
supponiamo che in due diverse locazioni di 
memoria. A e B. siano contenuti due nu- 
meri. h e k. Se vogliamo scambiare di posto 
i due elementi non possiamo farlo diretta- 
mente in quanto, se ad esempio ordiniamo 
di porre “h" in "B" il contenuto di A an- 
drebbe semplicemente a sostituirsi a quello 
di B e quest'ultimo andrebbe perduto. La 
figura 3 mostra come ottenere lo scopo 
prefisso adottando una locazione tempo- 
ranea che chiameremo T. La sequenza e- 
satta è la seguente: 

1) mettere il contenuto di A in T; 

2) mettere il contenuto di B in A; 

3) mettere il contenuto di T in B: 

per effettuare lo scambio sono quindi ne- 
cessari tre passaggi. 

Alcuni Basic, va comunque detto, pos- 
siedono una istruzione apposita per lo 


scambio di due variabili (swap nel Mi- 
crosft). 

Se a questo punto della lettura vi è tutto 
chiaro, non vi sarà difficile comprendere il 
diagramma riportato nella figura 4 che de- 
scrive l'algoritmo in maniera completa e 
quindi facilmente adattabile a qualunque 
macchina. Il flag F assume una notevole 
importanza in quanto permette l'arresto 
delle operazioni nel caso in cui non si sia 
verificato, ad un certo punto del procedi- 
mento. alcuno scambio, cosa che segnala 
l’avvenuto ordinamento della lista. Per 
mezzo dell'introduzione di F. un procedi- 
mento così lento può diventare più vantag- 
gioso di altri più veloci su liste parzialmen- 
te ordinate in cui bisogna modificare solo 
pochi elementi. 

Altri due metodi 


Un altro procedimento di ordinamento 
può essere ottenuto utilizzando un diverso 
metodo di confronto: si confronta l'ele- 
mento v(i) della lista con tutti i rimanenti e 
l'elemento più piccolo viene situato al po- 
sto di v(i) dopodiché viene incrementato 


“i” e ripetuti i vari passaggi. In quest'ulti- 
mo modo, l'insieme viene ordinato dopo 
soltanto N-l passaggi. 

In pratica si suppone all'inizio che il pri- 
mo elemento della lista sia quello più pic- 
colo; lo si confronta allora con il secondo e 
se l'assunto rimane vero, cioè il primo ele- 
mento è effettivamente minore del secon- 
do, si procede all'esame di quello successi- 
vo. cioè il terzo. In caso contrario, da quel 
momento in poi è il secondo elemento della 
lista ad essere considerato il minimo ed il 
confronto sarà effettuato tra quest'ultimo 
ed i rimanenti. Consideriamo, per fare un 
esempio, ancora l'insieme: 

7 4 5 3 2: 

per applicare il metodo in esame, si suppo- 
ne per prima cosa che l'elemento v( I ). 7 nel 
nostro caso, sia il minimo e si confronta 
tale elemento con quello in seconda posi- 
zione, cioè v(2): dato che 7 è maggiore di 4, 
l'evidenza dei fatti ci impone, da quel mo- 
mento in poi. di assumere come minimo il 
secondo elemento, cioè 4. e cosi via. Alla 
fine dei confronti scambieremo la posizio- 
ne del minimo effettivo con la prima della 
lista e ripeteremo il procedimento per i 
rimanenti elementi e cosi via. Anche que- 
sto algoritmo viene sintetizzato nella figu- 
ra 5. Un ultimo metodo che abbiamo scel- 
to di illustrare in queste righe è un procedi- 
mento di ordinamento veloce (quicksort) a 
cui per semplicità preferiamo introdurvi 
con un esempio. Consideriamo una lista di 
8 elementi, ad esempio: 

v(1) v(2) v(3) v(4) v(5) v(6) v(7) v(8) 

[13] 9 34 65 4 67 8 (3) 

Definiamo l'elemento v(l) come "ele- 
mento di riferimento ", E, e confrontiamo- 
lo con l'ultimo all'estrema destra: h e k 
sono due puntatori di cui vedremo tra bre- 
ve l'utilità. Se E è minore o uguale a v(8) 
non si effettua nessuno scambio, viene de- 
cremenlato di una unità il puntatore oppo- 
sto ad E. nel nostro caso k che si porta in 
posizione v(7), e si procede al nuovo con- 
fronto tra E e l'elemento indicato da tale 
puntatore. Se invece E è maggiore di v(8). 
come nel nostro caso, si effettua lo scam- 
bio. si incrementa di una unità il puntatore 
di sinistra, h. e si procede al confronto tra il 
nuovo elemento indicato da h e l'elemento 
di riferimento E. La nuova situazione sarà 
allora: 

3 (9) 34 65 4 67 8 [13] 

Il nuovo confronto tra 9 e 13 non impli- 
ca uno scambio essendo 9 minore di 1 3 e 
quindi sarà incrementato h di una posizio- 
ne: 

3 9 (34) 65 4 67 8 [13] 

Confrontando ora il numero indicato da 
h, cioè 34, con E (13) ci accorgiamo che i 
numeri non sono in ordine quindi bisogne- 
rà effettuare lo scambio e decrementare il 
puntatore k opposto ad E: 

3 9 [13] 65 4 67 (8) 34 

a questo punto il procedimento dovrebbe 
essere chiaro, comunque per completezza 


108 


MCmicrocomputer n. 38 - febbraio 1985 



riportiamo di seguito i passi successivi: 

3 9 8 (65) 4 67 [13] 34 


3 9 8 [13] 4 (67) 65 34 


3 9 8 [13] (4) 67 65 34 


3 9 8 4 [13] 67 65 34 


Come é semplice constatare, al termine 
della prima serie di passaggi l'elemento E 
viene a trovarsi nella posizione che rispetta 
il suo ordine finale nella lista. A questo 
punto il nostro insieme di partenza si trova 
diviso in due sottoliste che si trovano ri- 
spettivamente a destra ed a sinistra di E. 
Ripetendo il procedimento per i due sot- 
toinsiemi ottenuti si verificherà una cosa 
analoga che. alla fine di tutti i passaggi, si 
concluderà con l'ordinamento completo 
della lista. Anche questa volta riportiamo 
nella figura 6 il diagramma del procedi- 
mento di un passaggio. I metodi descritti 
non sono naturalmente gli unici; noi li ab- 
biamo scelti perché ci sono sembrati abba- 
stanza idonei ad illustrare i primi rudimen- 
ti riguardanti le tecniche di ordinamento 
utili a sensibilizzare il lettore su un argo- 
mento cosi interessante. I vari metodi sono 
tutti validi e l'utilità di impiegarne uno al 
posto di un altro deriva dalle necessità del 
momento. Se dobbiamo ordinare una lista 
di numeri generali casualmente il metodo 
più efficiente e professionale è senza dub- 
bio il quicksort. ma. se ci troviamo di fron- 
te a liste parzialmente ordinate, in molti 
casi risulta efficiente anche un metodo a 
convergenza meno rapida. 

Noi ci fermiamo qui rimandando mag- 
giori approfondimenti ai testi specializzali. 



electronic device* 


DIVISIONE informatica 


ELABORATORI 

C Plus II A-48 KByte. tastìerino 
numerico, alimentalore 5A, 

compatibile Apple 

C Plus II B-64 KByte I 

C Plus II C-64 KByte. Z 80 

(Oual Processor) 

C Plus II D-64 KByte. Z 80. 

40/80 Colonne I 

Elite 111-64 KByte Dual Processor, tastie 

rico. tasti (unzione. Basic e CPM I 

Boss 1 con tastiera separata i 

SISTEMI 

STARTER 1: C Plus II A * Drive 
+ Driver Mltac meccanica Shugart 5" 
+ Monitor Philips 12" TP 200 

+ Joy Stick autocentrante Li 

STARTER 2: C Plus II C 

•rive Controller + Driver Mltac 5" 

tonitor Philips 12" TP 200 Li 

STARTER 3 SISTEMA UFFICIO: 

: Plus IIBo Elite III + 2 Drivers Mita 
+ Drive Controller + Monitor Philips 

+ Stampante grafica e letter 
tuality 80 Colonne 120 /cps 
+ Corso Word Processing 


la C IBM compatibile HARD/SOFT cc 


il PC 

C IBM A. Microprocessore 8088, 128K RAM grafici 
colore, doppio drive slim 5" 360 KB, monitor 12" 
verde o ambra + pacchetto 5 programmi 

Llt. 3.500.0C 

C IBM B: come C IBM A ma con un drive 360 K e u 
Winchester 10 MB Llt 6.000.000 


Stampante Epson RX 80 F/T ... 

Stampante Epson FX 80 Llt. 1.150.000 

Stampante Epson FX 100 

quality 80 Colonne 120/cps. 

interfaccia parallela Apple Llt 1.050.000 

Stampante Panasonic grafica 6 
Colonne 120/cps. interfaccia 

parallela Apple Ut. 950.000 

Stampante PX 80. 80 cps, graf 

compatibile EPSON 80 RX FT* Llt. 680.000 

Monitor Philips TP 200 12" 

fosfori verdi Llt. 160.000 

2000 12" 

fosfori verdi, ambra Llt. 200.000 

Monitor Hantarex CTM 2000 15" 
fosfori verdi, ambra Llt. 305.000 

UMiU ' I. I H ' .l 

SKC 5" singola faccia. 

LiL 3.800 

SKC 5~ doppia fa 

DATALIFE, FLEXETTE . VEREX 



MCmicrocomputer n. 38 - febbraio 1985 


SCONTI PARTICOLARI Al SIGG. RIVENDITORI!!! 








FS 


NUOVA NEWEL s ,, 

di Ciampitti A. & C. Software & Computer Division 

MATERIALE ELETTRONICO Rivenditore Sinclair 

Milano • Via Mac Mahon, 75 - tei. (02) 32.34.92 Importazione diretta 

Magazzino - Via Dupré, 5 - tei. (02) 32.70.226 

È IN EDICOLA 
IN TUTTA ITALIA 
COMPUTER GAMES 
& UTILITIES 

EDITRICE SOFTWELL 


Mensile raccolta su cassetta di pro- 
grammi per home computer più inserto 
rivista. 

Ogni mese una raccolta di giochi e utilità 
per i più diffusi home computers (Sin- 
clair - Commodore etc.) 

Ogni cassetta è accompagnata da am- 
pie descrizioni d’uso, sia per i giochi che 
per le utilit i es. I giochi sono novità asso- 
lute, la parte è completamente inedita e 
diversa da qualsiasi altra in commercio 
l’inserto contiene normalmente: 
una serie di recensioni sulle ultime novi- 
tà software made in England U.S.A. etc. 
Novità hardware in commercio. 

Una pagina di attualità computers. 

Una classifca di vendita del software in 
Italia per la quale si richiede la collabora- 
zione di tutti i computers shop d'Italia. 
Un progetto hardware. 

Alcuni listati di programmi. 

La posta dei lettori. 

Un concorso quiz con in palio un com- 
puters al mese. 

Mese per mese sulla copertina di vendi- 
ta sarà specificato a quale settore di 


pubblico può interessare la pubblicazio- 
ne. 

Il prezzo di vendita al pubblico è di L. 
7.500 

Per informazioni richieste, offerte di col- 
laborazione preghiamo contattare la re- 
dazione provvisoria al n. tei. 323492 op- 
pure 3270226 corrispondente a Nuova 
Newel s.a.s. Via Mac Mahon, 75 - Via Du- 
prè, 5 - Milano che ci ha offerto la propria 
collaborazione. 

Preghiamo tutti coloro che hanno novità 
hardware quali prodotti finiti o kit elettro- 
nici, da divulgare di inviarci il materiale 
da visionare, verrà pubblicato gratuita- 
mente tutto ciò che può interessare il 
più vasto pubblico. 

Inoltre preghiamo i nostri futuri lettori di 
inviarci le proprie riflessioni, proteste, 
lettere di elogio, o di deprecazione, sui 
vari aspetti del mercato software e hard- 
ware in Italia, e sulle organizzazioni (ne- 
gozi, shop, venditori per corrisponden- 
za) che ne sono coinvolte. 

Grazie. Ciao 
Softwell 


Dalla Nuova Newel e alla Nuova Newel Computer Shop di Via Mac Mahon, 75 - Milano 
Tel. 02/323492 puoi trovare tutta la gamma di prodotti Sinclair, Commodore, MSX 
accessori hardware e software. 




Il Buffer di tastiera 

Nell 'ili limo articolo di questa serie abbia- 
mo visto, insieme ad alcune caratteristiche 
generali della memoria video, anche come 
scrivere o disegnare sullo schermo senza uti- 
lizzare l'istruzione Frinì, come intercettare 
delle parole impresse sullo schermo ed un 
modo rudimentale di memorizzazione di 
schermate. Vogliamo ora. nei due artìcoli 
che seguiranno, fare un passo avanti illu- 
strando degli altri melodi che permettono dì 
conservare su un supporto magnetico il con- 
tenuto di una pagina video e di richiamarlo 
al momento opportuno. Vedremo inoltre co- 
me sia possibile codificare il contenuto della 
memoria video con un insieme di numeri in 
maniera che risulti facilmente interpretabile 
e quindi riproducibile da parte di chiunque. 
Di schermate comunque parleremo la pros- 
sima volta perchè prima è indispensabile co- 
noscere l'argomento che segue. 

Il Buffer di tastiera 

Molti, leggendo il titoletto. si chiederan- 
no cosa c'entra il Buffer della tastiera con 
la memoria video. Vi diremo allora che 
direttamente non c'è nessun legame tra 
queste due cose, ma noi riusciremo in un 
certo senso a legarle indirettamente per 
raggiungere una elementare codifica di u- 
na videata completa. Ma andiamo per gra- 
di. Ogni volta che noi premiamo un tasto, 
il codice ASCII del carattere corrisponden- 
te viene conservato in una zona apposita- 
mente concepita per accumulare un certo 
numero di caratteri, per la precisione IO. in 
attesa di essere processati. Il tutto avviene 
in maniera trasparente all'utente poiché 
gestito per mezzo dell'interrupt del sistema 
(di cui abbiamo già ampiamente parlato) 
che viene abilitato ogni sessantesimo di 
secondo. Il perché della presenza di un 
Buffer del genere non è molto difficile da 
intuire: se noi premiamo un tasto prima 


di Tommaso Pantuso 



che il sistema sia pronto ad esaminarlo, 
esso non andrà perduto perché il codice 
corrispondente sarà conservato nella zona 
di cui stiamo parlando. Vogliamo attirare 
la vostra attenzione su un primo importan- 
te comportamento del Buffer in questione: 
quando esso è completo, e questo avviene 
se riusciamo a mettere in attesa dieci carat- 
teri. la pressione dell'undicesimo tasto ne 
provoca lo svuotamento dopo di che il pro- 
cesso può ricominciare. Vista l'ampiezza 
ridotta di tale zona (dieci byte) non si pensi 
comunque di riuscire a premere dieci tasti e 
battere il sistema in velocità nel senso che 
sarà mollo difficile accumulare dieci battu- 
te e provocare l’azzeramento del Buffer 
prima che il suo conten uto sia stato proces- 



sato. Vediamo un po' più da vicino le im- 
plicazioni di questo comportamento. 

Come detto, il Buffer è composto da 
dieci byte e si estende, sia per il Vie che per 
il C 64. dalla locazione 63 1 alla 640. L'ele- 
mento più imporatante dell'insieme di ge- 
stione é un puntatore P ad un byte situato 
nella locazione 198 che contiene il numero 
di tasti accumulali. Caricando allora il 
Buffer e dando un opportuno valore a P 
potremo forzarne lo svuotamento e sfrut- 
tare a nostro vantaggio tale comportamen- 
to. In pratica, utilizzando le proprietà della 
zona in questione potremo simulare dei 
comandi diretti. ..durante lo svolgimento 
di un programma. Sembra un controsenso, 
ma se ci seguirete attentamente, avrete pre- 
sto le idee chiare. 

Simuliamo i comandi diretti 

Supponiamo di voler caricare un pro- 
gramma (ad esempio da cassetta) e di av- 
viarlo automaticamente a caricamento av- 
venuto. La cosa é molto semplice perché 
basta premere il tasto Shift insieme al tasto 
Run/Stop. operazione che provoca l'effet- 
to desiderato. Supponendo però di voler 
compiere la stessa azione durante lo svolgi- 
mento di un programma, ci troveremmo di 
fronte ad un enigma difficilmente risolubi- 
le con le consuete procedure. Infatti, nor- 
malmente. quando la macchina sta elabo- 
rando. ci permette di interagire con essa 
mettendoci a disposizione dei comandi 
d'I/O non sufficienti però ai nostri scopi. 

Ora. se noi potessimo far fermare per un 
istante il sistema, scrivere sullo schermo il 
comando diretto richiesto, premere Re- 
turn ecc. ecc. senza ... toccare la tastiera, 
avremmo raggiunto il nostro scopo. Il 
Buffer di tastiera ci olire la soluzione nei 
seguenti termini. La sequenza Load + Re- 
turn + Run é codificata semplicemente 
con il numero 131: quando noi premiamo i 
tasti Shift + Run /Stop, tale numero viene 
introdotto nel Buffer di tastiera e da quel 
momento in poi le cose vanno da sé. Dato 
che il Buffer è accessibile mediahte dei co- 
mandi di Poke, noi possiamo simulare ab- 
bastanza semplicemente il comportamen- 
to appena descritto andando a scrivere nel- 
la locazione interessata, la 631. il numero 
che codifica il comando in questione. Pro- 
vate allora ad effettuare in modo diretto: 

Poke 631,131: < Return >. 

Non rileverete nessun cambiamento. 
L’operazione indicata non è infatti suffi- 
ciente a provocare lo svuotamento del Buf- 
fer e l'esecuzione dei comandi in esso con- 
tenuti. Dovremo specificare un'altra infor- 
mazione utile al sistema per procedere e 
cioè il numero di caratteri che vogliamo 
"tirar fuori" dalle locazioni 63 1 in poi (fino 
alla 640) attribuendo il relativo valore al 
puntatore situato nella locazione 198. In 
altre parole, se immaginiamo di riempire le 
prime n locazioni del Buffer (con n che va 
da la IO), perché la sequenza da esse codi- 
ficata venga eseguita dovremo dare l'ulte- 
riore comando: 

Poke 198.n 

in seguito al quale le locazioni citate ver- 


MCmicrocomputer n. 38 - febbraio 1985 


ranno "svuotate", nel senso che comparirà 
sullo schermo il loro contenuto decodifica- 
to (cioè il carattere al posto del codice) 
(figura I). Ritornando a noi, il codice del 
caricamento + autoLoad è 131 e quindi il 
comando completo occupa una sola loca- 
zione; dopo aver allora “Pokato" 131 nella 
posizione 63 1 . corrispondente al primo by- 
te del Buffer, dovremo scrivere il numero I 
nel byte rappresentante il puntatore per 
comunicare al sistema che deve considera- 
re solo |l primo elemento del Buffer. Il 
lutto si risolverà con: 

Poke 631.1 31 :Poke 198,1 <Retum> 
che farà comparire sullo schermo la scritta 
"Press Play on Tape" e genererà automati- 
camente il Return (figura 2). 

La prima cosa importante da imparare è 
che, se la procedura descritta viene gestita 
da un programma, perché il contenuto del 
BufTerdi tastiera venga preso in considera- 
zione bisogna... uscire dal programma. In 
altre parole, dopo aver immagazzinato gli 
appositi valori nelle adeguate locazioni 
con delle Poke, bisogna scrivere di seguito 
il comando End. Il sistema scriverà allora 
Ready e solo dopo questo evento andrà a 
leggere il contenuto del Buffer, Ciò crea 
una difficoltà: il programma si ferma. Que- 
sto inconveniente può comunque essere ri- 
solto con la stessa tecnica codificando nel 
Buffer il comando Goto m che rimanderà 
l'esecuzione ad una certa linea, nel nostro 
caso la m. Avremo comunque modo di 
capire meglio questo fatto con degli esem- 
pi, fra breve. 

Un altro inconveniente è dato dal fatto 
che, rimandando in esecuzione il program- 
ma con un Goto, viene perso il contenuto 
delle variabili. Anche questo inconvenien- 
te può comunque essere risolto memoriz- 
zando tali variabili in alcune locazioni inu- 
tilizzate dal sistema. Per fare un semplice 
esempio, se abbiamo la necessità di conser- 
vare il valore A = 54. basterà, prima del 
Goto, effettuare: Poke L.A dove L è una 
qualsiasi locazione di Ram libera che non 
viene modificata dal sistema nel corso del- 
l'esecuzione di un programma, se non die- 
tro nostra richiesta. 

I primi esempi 

Ricapitolando, l'impiego principale che 
noi possiamo trarre dai comportamenti 
descritti è quello di permettere ad un pro- 
gramma di automodificarsi, nel corso del- 
l'esecuzione generando delle istruzioni cosi 
come verrebbero scritte dall'utente arre- 
stando il programma. Abbiamo visto co- 
me risolvere alcune difficoltà e vogliamo 
accennare al modo in cui risolverne un'al- 
tra introdotta dalle modeste dimensioni 
del Buffer. Per fare un esempio, supponia- 
mo di voler aggiungere, in seguito ad una 
determinata scelta, la linea: 

10 PRINT "CASA". 

Se il programma fosse fermo, bastereb- 
be scrivere 10 Print “casa" < Return > , ma 
dato che supponiamo che il programma sia 
in esecuzione, dovremo simulare l'opera- 
zione mediante l'impiego del Buffer. 



Per prima cosa dobbiamo ricavare i co- 
dici ASCII dei vari elementi costituenti la 
frase completa utilizzando le apposite ta- 
belle fornite nei manuali o per mezzo del 
comando Print Asc("x"), dove x é il carat- 
tere di cui vogliamo ottenere il codice. Uti- 
lizzando per Print la forma ridotta, data 
dal punto interrogativo, otterremo la se- 
guente tabella: 



A questo punto provate ad immettere 
questi dati con il seguente programma: 

1 FOR I 0 TO 9 

2 READ A 

3 POKE 631 + 1, A 

4 NEXT ItPOKE 198,10 
20 DATA 49,4863 
34,67.65,83,65,34,13 

e date il Run. Vedrete allora comparire 
sullo schermo la scritta 
10 PRINT'CASA" 

dopo di che si genererà automaticamente il 
Return e la frase verrà memorizzata come 
linea di programma, identificata dal nume- 
ro 1 0; potrete verificare questo fatto dando 
il List. Bene: fino a questo punto nessuna 
difficoltà. Immaginiamo però che la paro- 
la da scrivere sia composta appena da un 
carattere in più o il numero di linea sia 
formato da più di due cifre. In tali condi- 
zioni il Buffer di tastiera non avrebbe più la 
capacità di contenere tutti i caratteri e a 
prima vista ci vedremmo impossibilitati ad 
utilizzare i metodi precedenti. Possiamo 


però utilizzare una tecnica mista. Per mez- 
zo dell'istruzione: 

n PRINT "10PRINT"CHR$(34) " . .. "CHR$(34)" 
faremo scrivere dal programma la linea 
che ci interessa dove n rappresenta il nu- 
mero della linea ed al posto dei puntini 
introdurremo la parola desiderata. 
ChrS(34) è il codice delie virgolette ed è 
stato usato perché altrimenti non si po- 
trebbero scrivere più di due virgolette sulla 
stessa linea. Scritta la linea sullo schermo, 
dovremo fare in modo che il cursore vi si 
"depositi" sopra e ciò potrà essere ottenu- 
to introducendo nel Buffer, per il numero 
di volte sufficiente, il codice del carattere 
Shift + Crsr verticale. Fatto ciò non ci 


resta che simulare la pressione del Return 
con il codice 13 nel Buffer. Questa sequen- 
za di operazioni, che "narrata" sembra 
complessa, è in realtà molto semplice e 
viene implementata con le seguenti linee: 

1 PRINT"Shift + Clr/Home" 

2 PRINT" 10PRINT"CHR$(34)"CASAXHRS(34) 

3 POKE631 . 1 45:POKE632. 1 45:POKE633. 1 45 

4 POKE634,13:POKE198.4 

Sella linea 3, il codice 145 nei primi tre 
byte provoca Io spostamento del cursore di 
ire posizioni verso l'alto. Non è difficile 
■ ''servare, dato il Run, che questo segmen- 
I» funziona come il precedente con l'unica 
ma sostanziale differenza che la linea da 
aggiungere può in questo caso essere lunga 
molto più di quanto sia permesso dalla 
capienza del solo Buffer di tastiera. 

Un passo avanti 

Supponiamo ora che che il segmento di 
cui abbiamo parlalo faccia parte di un pro- 
gramma e che, dopo aver aggiunto la linea 
che interessa, il controllo debba ripassare 
al programma in oggetto. Come già detto, 
il contenuto del Buffer di tastiera viene 
fuori per cosi dire solo dopo un End; nel 
segmento precedente l'End veniva intro- 
dotto automaticamente dopo la linea 4 
perchè il programma terminava, ma in 
molti dei casi in cui può essere impiegata la 
tecnica descritta il programma continua e 
se poniamo un "End" per provocare lo 
svuotamento del Buffer otterremo anche 
l’arresto dell'elaborazione e ciò evidente- 
mente non sempre fa comodo. 

Come però abbiamo accennato, la solu- 
zione a questo ulteriore problema è abba- 
stanza semplice in quanto basta far simula- 
re, nel corso dello svuotamento, l'istruzio- 
ne diretta Goto m, dove m rappresenta la 
linea da cui vogliamo ricominci lo svolgi- 
mento del programma. Tale istruzione la 
daremo in forma ridotta per risparmiare 
spazio, cioè come G + Shift O a cui corri- 
spondono i codici 71 (G) e 1 1 1 (Shift O). 


49 

li 9 

65 

3 li 

67 

65 

8 3 

65 

3V 

J3 

-1 

0 

? 

" 

C 

fl 

5 

A 

" 

Rt«. 


112 


MCmicrocomputer n. 38 - febbraio 1985 


Per chiarire le idee facciamo il solito esem- 
pio. 

Consideriamo sempre il segmento prece- 
dente e supponiamo, dopo aver aggiunto 
la linea IO. di voler passare il controllo di 
nuovo al programma mandando l'esecu- 
zione ad una nuova linea, la 20, che provo- 
ca l'arresto momentaneo fino alla pressio- 
ne di un tasto qualsiasi. La linea in questio- 
ne può ad esempio essere la seguente: 

20 GET A$:IF AS = "" THEN 20; 
aggiungendo nel nostro caso solo questa 
linea, quando al momento opportuno si 
premerà un tasto il programma avrà termi- 
ne. Il programmino d'esempio proposto è 
il seguente: 

0 PRINT'CIr/Home" 

1 PRINT" 10PRINT"CHR$(34) "CASA "CHR$ 

(34) 

2 POKE631,145:POKE632,145:POKE633,145 

3 POKE634,13:POKE635.71:POKE636.111 

4 POKE637.50:POKE638.48:POKE639,13 

5 POKE198.9.END 

10 REM questa linea sarà modificata 

20 GETAS: IFA$ = “ “ THEN 20 

Anche in questo caso per maggiore chia- 
rezza presentiamo la tabellina dei caratteri 
introdotti nel Buffer ed i relativi codici: 



Il segmento ha bisogno di pochi com- 
menti. Dopo il <Run> vedrete compari- 
re la linea 10, il cursore vi ritornerà sopra e 
sarà generalo un primo Return dopodiché 
comparirà il Ready. Dopo ciò verrà scritto 
sullo schermo, in forma ridotta. Goto 20 e 
quindi generato un altro Return. Con Po- 
ke 198,9:END si ottiene lo svuotamento 
del Buffer. 



Salviamo le variabili 


Ci resta ora da approfondire un ulterio- 
re aspetto che ci permetterà di utilizzare in 
maniera più produttiva il Buffer di tastie- 
ra: il salvataggio delle variabili. 

Nel programma precedente, quando 
viene generata l'istruzione Goto 20, se il 
sistema sta conservando qualche variabile 
questa va perduta. Sembrerebbe allora che 
in una grossa quantità di casi l'utilizzo del 
BulTer diventi inutile a causa di questo 
handicap. Anche questa volta vogliamo 
proporvi una soluzione del problema. Co- 
me saprete, esistono nella memoria del Vie 
20 o del C 64 delle locazioni che l'utente 
può impiegare a suo piacimento per me- 
morizzarvi delle piccole routine in linguag- 
gio macchina senza che debba proteggere 
delle apposite zone nella parte alta della 
memoria. Una di queste zone accessibili è 
ad esempio il Buffer usato dal registratore 
a cassette, al quale possiamo accedere con 
una certa tranquillità se non sono richiesti 
caricamenti di dati o programmi da nastro. 
Di tale zona, per il nostro esperimento, 
utilizzeremo la locazione 820. 

Il "trucco” che vi proponiamo, se cosi si 
può chiamare, consiste nel memorizzare, 
per mezzo del comando Poke, il valore 
della variabile che andrebbe perduta in u- 
na o più locazioni da cui andremo poi a 
ripescarla al momento opportuno. Ad e- 


sempio, se A = V con V minore di 256. il 
tutto si risolverà con Poke L.A dove L è la 
locazione in cui depositiamo il valore da 
salvare: lo stesso valore potrà poi essere 
riletto con Peek (L). Se la variabile supera 
il limite suddetto, potremo dividerla in una 
parte più significativa (parte alta) ed in una 
meno significativa (parte bassa) e conser- 
vare i valori in due locazioni. La suddivi- 
sione in parte alta e bassa può ad esempio 
essere ottenuta nel seguente modo: 

A = parte alta = int(VS256) 

B = parte bassa = V-A-256 
e per riavere la variabile si effettuerà: 

V= A-256+B. 

Per variabili di valore più elevato si pos- 
sono studiare altri metodi ma per il mo- 
mento la cosa non ci riguarda. 

Tornando a noi, supponiamo di voler 
aggiungere al programma precedente per 
tre volte la linea Print“casa" con numera- 
zione che va da I a 3. Normalmente la 
prima cosa che viene in mente è di impiega- 
re un contatore, ma nel nostro caso ciò è 
impossibile perché esso andrebbe perduto 
dopo il Goto. La soluzione completa ve la 
forniamo nel segmento della figura 5 che 
ormai dovreste essere in grado di interpre- 
tare da soli. Notare come l'incremento del- 
la locazione 820, preventivamente azzera- 
la. venga effettuato semplicemente con Po- 
ke (830), Peek (830) + 1. Per concludere, vi 
forniamo in figura 6 un programmino che 
permette di sostituire durante l'esecuzione 
un'intera funzione. Noi abbiamo usato il 
programma per calcolare il valore dell'or- 
dinata della funzione data l'ascissa ma so- 
stituendo o aggiungendo le linee opportu- 
ne si può far svolgere qualsiasi calcolo. 
Dopo il Run. voi dovrete solo introdurre la 
funzione di cui si vogliono calcolare i punti 
in maniera intellegibile al computer cioè 
come X*X oppure X*X + 3*X + 2 ecc. 

Per questo mese ci fermiamo qui ma vi 
aspettiamo la prossima volta per vedere 
insieme come codificare delle schermate 
per renderle facilmente interpretabili e co- 
me queste possano essere salvate su nastro 
o disco. MC 


5 POKE830 ; 0 : GOTO70 

6 PRINT "IT 

? PR I NTfl ; " PR I NT " CHR$ ( 34 ) " CASA " CHRt ( 34 ) 

20 P0KE631 , 145 : P0KE632, 145 

21 P0KE633, 145 : P0KE634, 13 

22 P0KE635 ,71 : P0KE636 ,111 

23 P0KE637 , 55 : P0KE638 , 48 

24 P0KE639 , 1 3 : POKE 1 98 , 9 : END 
70 GETftf : I Fflf - " " THEN70 

75 POKE830, PEEK<830)+1 
80 A=PEEK<830) : IFR>3THENEND 
90 G0T06 


5 PRINT "73" 

10 REM 

20 REM CALCOLO DELL 'ORDINATA 

23 REM DI UNA FUNZIONE 

27 REM DATA L'ASCISSA 

30 REM 

35 PRINT 

40 INPUT "FUNZIONE" ; Ff 
50 PRINT "339 DEF FNFOO= ";F$ 

60 P0KE63 1,19: P0KE632 ,13: P0KE633 , 7 1 

65 P0KE634 , 207 : P0KE635 , 57 

70 P0KE636 , 57 : P0KE637 , 13 : POKE 198, 7 : END 

99 REM QUESTA LINEA SARA' SOSTITUITA 

100 I NPUT "ASCI SSA " i X 
110 V=FNF(X) 

115 PRINT" SORDI NAT AB" ; V 
120 I FX=999THEN40 

130 GOTO 100 


Figura 5 - Dopo il Run 


Figura fi - Durante questo programma, digitando 999 si passa all'introduzione di una 


MCmicrocomputer n. 38 - febbraio 1985 


113 


COMMODORE 64 


L’ADP Basic 


P come Printer 

Penultimo appuntamento con VADP Basic: questo mese è la volta delle stampanti 
Commodore MPS 801 e MPS 802. 

Come per il Plotter potremo dirottare su carta i normali output video, 
nonché sfruttare facilmente le varie funzioni svolle da queste due periferiche. 
Sempre senza OPEN, CMD e canee Ilei ti (t) vari. 


Avvertenza 


1 listati Basic presentati negli ultimi tre 
numeri, riguardanti le periferiche Drive 
1541 e Plotter 1520, devono essere caricati 
in memoria e eseguiti tutti per poter imple- 
mentare le istruzioni di questo mese e del 
prossimo. Queste, infatti, fanno riferimen- 
to a porzioni di programma LM già pre- 
senti per risparmiare spazio. Detto in altre 
parole, chi non ha il plotter. ma solo disco e 
stampante, non potrà non copiare anche le 
linee data del mese scorso. 

La cosa è diversa per questo mese: dato 
che le due stampanti (la 80 1 e la 802) hanno 
pochissimo in comune, e si suppone che 
ben pochi utenti le posseggano entrambe. 
l'ADP Basic si sdoppia. Gli utenti della 802 
copieranno un listato, gli utenti della 801 
un altro. È comunque necessario copiarne 
uno, se si vuole aggiungere i comandi del 
prossimo mese, riguardanti la definizione 
dei tasti F1-F8 e... dulcis in fundo. una 
gestione super semplificata dei file relativi. 

L’MPS 802 


Inizieremo con la stampante "intelligen- 
te - bidirezionale - veloce - gioiello" MPS 
802. I fortunati possessori sanno quanto 
sia (ci sarebbe da usare un altro termine 


di Andrea de Prisco 
Quarta parte 

per una maggiore resa) stressante sfruttare 
tutte le possibilità offerte dalla macchina 
in merito al controllo del formato, alla 
selezione deH'interlinea. alla paginazione 
automatica e altro. Se a ciò aggiungiamo 
l'angoscia dei lisi su carta o. peggio, dell’ 
HardCopy di una schermata, la soluzione 
é una sola: ADP Basic. 

Il primo coniando di questo mese, ge- 
mello del plotteriano PL. è PR: anche que- 
sto. a seconda di cosa precede, ha 5 diversi 
significati. 

1) PR ON: predispone la stampante co- 
me periferica di output. Dopo questo co- 
mando. ogni normale PRINT sarà dirotta- 

2) PR OFF: disabilita lo stato di PR 
ON riattivando il video quale normale pe- 
riferica di output. 

3) PR RESET: invia alla stampante un 
comando di Reset. Serve per riportare in 
un sol colpo ai valori default tutti i para- 
metri di stampa precedentemente variati. 

4) PR SMALL: predispone il set di 
stampa maiuscolo/minuscolo. 

5) PR CAP: predispone il set di stampa 
maiuscolo grafico. 

Valgono le stesse considerazioni fatte 
perii comando PL del Plotter: PR SMALL 
o PR CAP deve essere selezionato prima 


del PR ON e mai dopo (un PR OFF è 
automaticamente forzato). 

Sempre fratello del comando WRITE 
del Plotter. il comando LPRINT permette 
un output diretto su stampante senza cam- 
biare normale periferica di output. La sua 
sintassi è identica a quella del comando 
PRINT del Basic standard: dopo LPRINT 
può esserci una qualsiasi combinazione di 
stringhe e/o numeri separati da virgola o 
punto e virgola. Ad esempio scriveremo: 
LPRINT "Età= ”;X 

Per gli output formattati si usano i co- 
mandi USINGeOUT: il primo per specifi- 
care il formalo di stampa, il secondo per 
inviare i dati da stampare. Ad esempio 
potremmo scrivere: 

10 USING “AAA AAA AAA " 

20 OUT "CBM"CHR$(29)’ CBM "CHR$(29) 
•CBM" 

La sintassi è la stessa adoperata normal- 
mente (senza l'ADP) ossia dialogando in 
termini di OPEN e PR1NT5. Ricordiamo 
che CHR$(29) è il carattere di SKIP ado- 
perato per effettuare il formattamento. A 
pagina 19 del manuale di istruzioni 
dell'802 è mostrata una tabella di esempi di 
formattamento. Listate in queste pagine 
due programmi che eseguono il test del 
manuale, uno con il Basic standard, l’altro 
con l'ADP Basic. 



114 


MCmicrocomputer n. 38 - febbraio 1985 



L'ADP Batic 



MCmicrocomputer n. 38 - febbraio 1985 


115 


Per attivare la paginazione automatica 
esiste il comando PAGE, seguito da ON. 
OFF o SIZE rispettivamente per l'attiva- 
zione, la disattivazione o per dichiarare il 
numero di linee di stampa per pagina, pri- 
ma di saltare la perforazione. PAGESIZE 
implicitamente attiva la paginazione. Fac- 
ciamo un esempio: all'accensione la stam- 
pante è tarata per stampare 66 linee per 
loglio. Per attivare l'autopaging su tale va- 
lore digiteremo: 

PAGE ON 

per disattivare: 

PAGE OFF 

se vogliamo variare la dimensione della 
pagina, ad esempio la metà. 33 linee, digi- 
teremo: 

PAGE SIZE 33 

non sarà necessario un PAGE ON essendo 
implicitamente attiva l'autopaginazione 
col comando PAGE SIZE, Da questo mo- 
mento in poi. fino a un prossimo PAGE 
SIZE o a un PAGE OFF o a PR RESET, 
la nostra MPS 802 ogni 33 linee di stampa 
lascerà 6 linee vuote per separare le pagine. 

Se vogliamo cambiare l'interlinea (lo 
spazio tra le righe di stampa) è disponibile 
il comando FEED seguito da un numero 
minore di 1 27. Ad esempio: 

FEED 18 

produrrà 8 linee per pollice. 

FEED 36 

è il passo standard (6 linee per pollice) 
FEED 21 

farà combaciare le matrici dei caratteri, 
come avviene sul video del 64. 

Per quanto riguarda i messaggi di errore 
della stampante esiste un apposito coman- 
do per attivarli o disattivarli: 

MESSAGE ON 
e 

MESSAGE OFF 

non crediamo nell'opportunità di ulteriori 
commenti. 


Le ultime due istruzioni, LLIST e H CO- 
PY permettono rispettivamente un lisi di- 
retto su carta del programma Basic conte- 
nuto in memoria e la copia su carta del 
contenuto dello schermo. La sintassi del 
primo è identica a quella del LIST. Potre- 
mo ad esempio scrivere: 

LLIST-50 

per avere il listing delle linee minori di 50 o 
LLIST 100-200 

per quello compreso tra 100 e 200. Inutile 
sottolineare che LLIST e basta esegue il lisi 
su carta di tutto il programma. 

HCOPY non necessita di alcun parame- 
tro ed esegue l'HardCopy perfetto di tutto 
il contenuto del video, facendo combaciare 
le linee di stampa. Se non si desidera ciò è 
sufficiente digitare prima di HCOPY: 
POKE 52779,36 

per ritornare alla normalità: 

POKE 52779,21 

per interrompere la stampa prima del ter- 
mine. è sufficiente tenere premuta la barra 
spaziatrice. In tutti i casi, alla fine un co- 
mando di RESET sarà forzato alla stam- 
pante per ripristinare i valori standard di 
stampa. 

Ah! un'ultima precisazione: il PR RE- 
SET non ha effetto sul set di caratteri pre- 
scelto: se abbiamo selezionato le minusco- 
le, continueremo ad avere queste (solo PR 
CAP fa tornare al modo maiuscolo/ 
grafico). 

L’MPS 801 


Fra i comandi descritti, quelli disponibi- 
li anche per la 801 sono: 

PR ON 
PR OFF 
PR SMALL 
PR CAP 
LPRINT 
LLIST 
HCOPY 

e hanno esattamente la stessa sintassi, svol- 


l. ADP Basii 

gendo le medesime funzioni. Un'unica pre- 
cisazione da fare riguarda HCOPY ed e- 
ventuali apici (") presenti sullo schermo: al 
momento della stampa vengono automati- 
camente trasformati in apostrofo (') dato 
che. come noto, gli apici rendono visibili i 
caratteri di controllo (cuoricini, Q o altro) 
e ciò non sempre é desiderabile. Per evitare 
che le linee di stampa siano attaccate è 
sufficiente digitare prima di HCOPY: 
POKE 52267,15 

se si ridesidera un HCOPY tutto di fila. 
POKE 52267,8 

come sempre, per arrestare la stampa pri- 
ma del termine, si tiene premuta qualche 
attimo la barra spaziatrice. 

Specifici per l'80l abbiamo due nuovi 
comandi: DOUBLÉ e GRAPHIC. ambe- 
due seguiti da ON o OFF. Si usano per 
abilitare o disabilitare il modo caratteri 
espansi o il modo grafico. Riassumendo: 
DOUBLÉ ON = = caratteri doppi 
DOUBLÉ OFF = = caratteri standard 
GRAPHIC ON = = modo Hi-Res 
GRAPHIC OFF = = caratteri standard 

General Remarks 


Lo spazio è tiranno e il succo del discor- 
so è che non commenteremo tutti i listati 
LM. ma solo i più interessanti. Chi ci ha 
seguito nei numeri scorsi non troverà diffi- 
coltà a ben capire anche questo mese. 

Le subroutine 1 . 2 e 3 servono per stabi- 
lire comunicazioni con le stampanti. Più 
precisamente, la prima (usata sia dalla 802 
che dalla 801) serve per aprire un file di 
stampa. La seconda e la terza (usate solo 
dalla 802) si utilizzano per comunicazioni 
con indirizzo secondario (specificato nel- 
l'accumulatore prima della chiamata) di- 
versi da 0. La prima apre la comunicazio- 
ne, la seconda la chiude. 

Il listato 8 implementa l'istruzione 
HCOPY. Le prime 9 linee, aprendo un file 



116 


MCmicrocomputer n. 38 - febbraio 1985 


I Al) P Busi, 




di indirizzo secondario 6. cambiano l'inter- 
linea di stampa per ottenere un HCOPY 
con le righe tra loro adiacenti. Il valore 
inviato è $15, 21 in decimale. Segue l'aper- 
tura del file di stampa (JSRSC023) e la 
specifica output di quest'ultimo. Nei byte 
$FB e SFC si pone il puntatore al corrente 
carattere di stampa. Come noto, i codici di 
schermo sono diversi dai rispettivi codici di 
stampa: le linee comprese tra SCC7B e 
SCC8A eseguono la dovuta trasformazio- 
ne. sfruttando anche una piccola tabella (4 
byte) locata a SCCFC. 

Un carattere $1 2 ( RVS ON) o $92 (RVS 
OFF) é inviato prima del carattere vero e 
proprio a seconda che questo sia o no re- 
verse. 

Se il carattere da stampare é apici ($22). 
per non visualizzare i successivi caratteri di 
controllo RVS ON e OFF. si ricorre a un 
piccolo trucco: si invia uno SHIFT RE- 
TURN (che manda la testina a capo, ma 
non fa avanzare il foglio) e si riporta la 
testina di scrittura alla giusta posizione 
"stampando" il necessario numero di 
blank. 

Il JSR$FFE4 di SCC5A serve per con- 
trollare la pressione di qualsiasi tasto per 
interrompere anzitempo l'HardCopy. 

La versione per l'MPS 801, non listata 
per motivi di spazio, realizza il combacia- 
mento delle linee inviando un CHR$(8) 
prima di passare a nuova linea, e un 
CHR$(15) prima di iniziare la stampa di 
questa. Il trucchetto è ben spiegato nel ma- 
nuale di istruzioni della 801. 

Il listato 9, valido sia per l’80 1 che la 802, 
implementa l'istruzione LLIST. Le opera- 
zioni compiute sono molto semplici dato 
che. tanto per cambiare, sfrutta resistenza 
dell'istruzione LIST del Basic standard. 
Per prima cosa apre un file di stampa. Pri- 
ma di cedere il controllo al normale LIST, 
riempe il buffer di tastiera con la stringa 
PROFF + [RETURN] per disabilitare la 
stampante al termine del LIST. La cosa è 
direttamente visibile sul video, dato che 
appare subito sotto il nostro LLIST non 
appena terminata l'operazione. Il salto 
all'implementazione del LIST è il JMP vi- 
sibile all'ultima linea. 

11 listato 1 1 (...e poi basta) implementa 
l'istruzione DOUBLÉ propria della stam- 
pante MPS 801. Il JSR$0079 di $CB74 
preleva, depositandolo in A, il codice to- 
ken che segue DOUBLÉ. Tre i casi: o c'è 
ON ($9I)o c'è OFF ($E0) o stampa SYN- 
TAX ERROR (JMPSC62B). Nel primo 
caso invia alla stampante il codice $0E ( 14) 
abilitando la scrittura espansa; nel secon- 
do caso invia $0F (15) che seleziona il mo- 
do caratteri standard. Il discorso sull’ADP 
Basic si concluderà nel prossimo numero. 
Tutto qui. 


Questo programma è disponibile su di- 
sco presso la redazione. Vedere l'elenco 
dei programmi disponibili e le istruzio- 
ni per l'acquisto a pag. 153. 


MCmicrocomputer n. 38 - febbraio 1985 


117 




I Adventure per tutti... 

di Guglielma Nigri - Montesilvano I PEI 
Tulli i possessori di computer si sono in- 
bai tuli, prima o poi. in un advenlure, versio- 
ne computerizzala della vecchia caccia ul 
tesoro, con in più l'enorme possibilità offer- 
ta dalla macchina alla fantasia dell' autore, e 
si sarà dibattuto inutilmente per ore tra pa- 
ludi e pantani o avrà cercato inutilmente la 
strada nella nebbia più fìtta per intere gior- 
nale. E a tutti sarà venuta prima o poi la 
tentazione di scriverne uno. ma avrà poi ri- 
nunciato vista la gran mole di lavoro neces- 
saria alla realizzazione con in più lo svan- 
taggio di non poterlo poi nemmeno giocare 
la meno di lavaggi del cervello I . 

I due programmi che presentiamo permet- 
tono invece di costruire lo scenario e le rego- 
le di qualsiasi advenlure e poi ili giocarlo, 
naturalmente anche cosi l'uutore non si di- 
vertirà molto, ma si può iniziare uno scam- 
bio di advenlure tra vari autori a patto che 
tutti usino lo stesso programma. Proponia- 
mo anzi agli autori di scambiare i dischetti 
con il testo degli advenlure tramite le nostre 
rubriche micromarket e micromeeting. 


Capita spesso che molli abbiano buone 
idee su un gioco ma non sappiano come 
realizzarlo. 

Quando ho fatto questa riflessione mi 
sono anche chiesto se non fosse possibile 
spiegare al computer lo svolgimento del 
gioco e lasciare a lui l'onore (e l’onere) di 
scriverlo. 

Detto fatto ho realizzato questi pro- 
grammi. 

Il primo serve a spiegare il funzionamen- 
to del gioco alla mela rispondendo ad op- 
portune domande. 

Il secondo serve a giocare l'avventura 
utilizzando i dati salvati su memoria di 
massa dal primo (può sembrare complica- 
lo ma non lo è). A DVENTUR EDITOR 
può salvare su disco advenlure game anche 
molto estesi, fino a 100 stanze. 100 oggetti 
e un dizionario di 1 50 parole oltre ad innu- 
merevoli altre cose, 

Considerando che da ogni stanza ci si 
può muovere in sei direzioni, che per ogni 
verbo si può avere una risposta personaliz- 
zata. spostamenti di oggetti, esecuzione 
fattibile solo una volta o solo in caso che si 
possieda un certo oggetto o che ci si trovi in 


un determinato luogo si può finalmente 
pensare che non si possa fare di meglio. 

Esaminiamo il modus operandi nel caso 
si voglia scrivere un'avventura. 

Bisogna naturalmente annotarsi tutto 
ma proprio tutto dell'adventure che si ha 
in mente (improvvisare davanti al compu- 
ter non é cosa facile). 

Dato il RUN al programma ADVEN- 
TUREDITOR. l'Apple chiederà in primo 
luogo il nome del gioco e il numero di 
luoghi del gioco ( 1-100). Verrà allora chie- 
sta la descrizione della stanza numero I. 
ciò che si scriverà apparirà esattamente 
nello stesso modo durante il gioco (atten- 
zione a non inserire virgole pena l'input 
error). si raccomanda piuttosto di non in- 
serire in advenlure molto estesi descrizioni 
più lunghe di 4 linee video (160 car.). 

Di seguito verrà chiesto il numero della 
stanza che si può raggiungere dando il co- 
mando N (nord) durante il gioco e cosi via 
per le altre 5 direzioni. 

Quindi il computer chiederà: "Va be- 
ne?". rispondendo NO l'Apple richiederà il 
tutto, rispondendo SI il computer prose- 
guirà a far domande. 


A* = VERBO DATO. 

AN* = NOME DELL' ADVENTURE. 

APO = AUMENTO PUNTEGGIO RELATIVO AL VERBO. 

B* = COMPLEMENTO DATO. 

COSO = COMPLEMENTI DEI VERBI PROGRAMMATI. 

DS = CHRS(<t> 

D<A,B) = DIREZIONE B DALLA STANZA A. 

ERS = MESSAGGIO DI ERRORE. 

EXO = FLAG DI VERBO GIÀ' ESEGUITO. 

FF. = FLAG GENERICO. 

FLO = FLAG DI VERBO NON ESEGUIBILE PIU' VOLTE. 
FOO = SPOSTAMENTI DI OGGETTI. 

HS = STRINGA GENERICA. 

1,12 = F0R-NEXT . 

MESO = MESSAGGI DEI VERBI. 

NO = NUMERO DEGLI OGGETTI . 

NS = NUMERO DEI LUOGHI . 

NV = NUMERO DEI VERBI . 

ODAO = OGGETTI DA AVERE PER ESEGUIRE I VERBI. 


OMO = NOMI DEGLI OGGETTI. 

POO = POSIZIONI DEGLI OGGETTI. 

PP = CONTATORE OGGETTI POSSEDUTI . 

PRS = PRESENTAZIONE. 

PUOO = LUOGHI DOVE E' POSSIBILE ESEGUIRE I VERBI. 
SC = PUNTEGGIO. 

SET = POSIZIONE ATTUALE DEL GIOCATORE. 

STSO = DESCRIZIONI LUOGHI . 

TF = FLAG DI PRESENZA PUNTEGGIO. 

TN = PUNTEGGIO DA RAGGIUNGERE. 

VSO = VERBI. 

VPOO = COPIA DEL VETTORE POO 

VSET = COPIA DI SET INIZIALE. 

US = FRASE INSERITA. 

X* = STRINGA GENERICA. 

X2S = ■ 

Y = NUMERO ERRORE. 

ZOO = LUOGHI DA RAGGIUNGERE ESEGUITO UN COMANDO. 


118 


MCmicrocomputer n. 38 - febbraio 1985 


software 



Advenlure Editor 



Listalo I - Programma EDITOR, permeile di creare un advemure e scrive poi in un /ile di testo tulle le 
informazioni necessarie al gioco. 


Finiti i luoghi il calcolatore chiederà il 
numero di oggetti presenti nell'adventure. 

Di ogni oggetto verrà chiesto il nome (da 
scrivere senza articolo) e la posizione ini- 
ziale. 

Successivamente si passerà ai verbi. Ci- 
gni verbo presuppone un suo complemen- 
to. Il dizionario massimo è di ISO parole 
suddivise in 75 verbi e altrettanti comple- 
menti. 

Per prima cosa l'Apple chiederà il nume- 
ro dei verbi, quindi di ogni verbo l'impera- 
tivo e il suo complemento (sempre senza 
articolo). La domanda successiva sarà ine- 
rente alla risposta da dare nel caso sia pos- 
sibile eseguire il comando, il default dato 
premendo ENTER é "OK. ". Poi verrà 
chiesto il luogo da raggiungere impartito il 
comando, scrivendo 0 non ci si muovere. 

Verrà chiesto in seguito lo spostamento 
di oggetti da effettuare. Inserendo un nu- 
mero positivo, ad esempio +5, l'oggetto 
numero 5 apparirà magicamente nel luogo 
dove ci si trova. Inserendo un numero ne- 
gativo, ad esempio -3, l'oggetto 3 scompa- 
rirà misteriosamente (in realtà la sua posi- 
zione sarà data a 0. la stanza 0 è un luogo 
che non c'è e quindi è utile per far sparire 
oggetti o depositarli momentaneamente). 

Inserendo 0 si intende che non deve av- 
venire alcuno spostamento. L'amica mela 
chiederà poi l'eventuale effetto sul punteg- 
gio (se il gioco è basato su di esso). Sarà 
successivamente chiesto il luogo dove è 
possibile eseguire il comando. Lo 0 indica 
che il comando è eseguibile dappertutto. 
Un numero negativo, ad esempio -7. indica 
che nella stanza n. 7 non potrà essere im- 
partito quel comando. Apple seguiterà 
chiedendo che oggetto si deve avere per 
eseguire l'ordine, scrivendo 0 si intende che 
non è necessario alcun oggetto. Verrà poi 
chiesto se il comando è eseguibile più di 
una volta, rispondere premendo S o N. 

Le ultime cose chieste saranno il numero 
della stanza da dove iniza il gioco e la 
presentazione. Verranno quindi date le i- 
struzioni relative al salvataggio su disco 
dei dati. Purtroppo i dati sono molti, ma 
da parte mia ho fatto di tutto per ridurre 
l'ingombro su disco. 


Questo programma è disponibile su di- 
sco presso la redazione. Vedere l'elenco 
dei programmi disponibili e le istruzio- 
ni per l’acquisto a pag. 153. 


MCmicrocomputer n. 38 - febbraio 1985 


119 


Veniamo al secondo programma: 
ADVENTL1RE 

Come già detto esso serve a giocare l'av- 
ventura programmata usando l'edilor. 

Dato il RUN verrà chiesto il nome del- 
l'avventura da caricare. Caricatala, si ini- 
zierà immediatamente a giocare. Per ogni 
stanza verranno visualizzati i nomi degli 
oggetti presenti insieme alla descrizione e 
verrà atteso un comando nella parte infe- 
riore del video. 

Infatti, usando opportunamente le fine- 
stre di testo, nella parte superiore del video 
è costantemente visualizzato ciò che è pos- 
sibile vedere, mentre in quella inferiore av- 
viene il dialogo tra giocatore e computer. 
Ci sono molti verbi assegnali "d’ufficio" e 
che non hanno bisogno di essere program- 
mati. essi sono: 

I. INVENTARIO. N. S. E. O. SALI. 
SCENDI. PRENDI. PIGLIA. POSA. 
LASCIA. BUTTA. SALVA GIOCO. 
PUNTEGGIO. 

I verbi eseguiti per primi sono quelli pro- 
grammati dall'utente, quindi nessuno vieta 
di riprogrammare quelli originari. Una co- 
sa molto bella e utile è che l'articolo può 
esserci o non esserci e può essere di qualsia- 
si lunghezza. 

Si potrà quindi dire ACCENDI TOR- 
CIA oppure ACCENDI LA TORCIA o 
anche ACCENDI CODESTA TORCIA. 

In questa versione, infatti, la prima pa- 
rola viene considerata verbo e l'ultima 
complemento. Questo è anche il motivo 
per cui i nomi degli oggetti devono essere 
dati senza l'articolo ad ADVENTUREDI- 
TOR. 

Ritengo ADVENTU REDITOR un pro- 
gramma semplice da leggere, quindi passo 
subito a commentare ADVENTU RE che 
è un programma più lungo e con alcune 
cose da notare. La numerazione è da 100 
con passo 10. Le prime istruzioni servono 
per eliminare l'effetto del MON e del 
TRACE. 

Le linee da 100 a 190 sono relative all'i- 
nizializzazione e alla presentazione. Da 
200 a 320 si stampa la descrizione della 
stanza. Da 330 a 520 si accetta il comando 
e si assegnano ad AS e a BS rispettivamente 
il verbo e il complemento. Dalla linea 530 
alla 710 c'è la routine di riconoscimento e 
di esecuzione dei verbi programmati dal- 
l'utente. mentre tra 720 e 1390 c'è quella 
relativa ai comandi preprogrammati. La 
linea 1400 segnala un eventuale errore di 
battitura. A 1410 c’è la routine di morte 



120 


MCmicrocomputer n. 38 - febbraio 1985 



MCmicrocomputer n. 38 - febbraio 1985 


121 


STAMPANTI Epson, 

una scelta prestigiosa, senza compromessi 




Epson dunque, senza 


Scegliere una 
stampante è facile? 

C’è una sola regola, pretendere 
sempre il massimo delle prestazioni, 
senza compromessi : materiali e compo- 
nenti di prima qualità, disegno elegan- 
te, grande affidabilità, robustezza, faci- 
lità e flessibilità d'impiego, prezzo ade- 
guato e la garanzia di un grande costrut- 
tore leader mondiale. 

Così, con Epson, la scelta è facile e 
sicura. 

Epson il più grande costruttore al mon- 
do di stampanti vi offre una gamma di 
prodotti prestigiosi che soddisfano ogni 
vostra necessità, Epson, una soluzione 
raffinata, in esclusiva per il vostro com- 
puter. 


RX-BD/RXIOO 

Le migliori prestazioni da stampanti, 
semplici, versatili, silenziose e veloci 
con 100 caratteri al secondo, 128 tipi di 
caratteri selezionabili e 11 set intema- 
zionali. 80 o 132 colonne. 6 diverse posi- 
bilità grafiche. Tutti i tipi di carta, modu- 
lo continuo, foglio singolo. Inseritori au- 
tomatici di fogli singoli. 


fx-bd 


Indispensabile nelle applicazioni in 
cui la versatilità e la qualità di stampa 
sono un imperativo. 

Possibilità di creare qualsiasi carat- 
tere su una matrice di 11x9 punti. Memo- 
ria RAM da 4 Kbyte. 256 tipi di caratteri 
definibili dall'utente. 136 tipi di caratteri 
a corredo. Alta velocità di stampa a 160 
caratteri al secondo su 80 colonne. Ben 
9 modi di stampa grafica punto a punto 
selezionabili sulla stessa riga contem- 
poraneamente. 

Inseritori automatici di fogli singoli a sin- 
gola e doppia vaschetta. 


FX-lOO 

Con 132 colonne e 160 ca- 
ratteri al secondo, la FX-100 
è la stampante ideale per 
data processing e tabula- 
ti, specialmente in uffi- 
cio grazie anche alla 
possibilità di accettare 
fogli singoli e moduli 
continui di qualsiasi 
formato. La matrice di p 
ù 11x9 
fiche e 

sima varietà di tipi di 
256, definibili anche dall'utente e me- 
morizzati nei 3 kbyte di RAM interna. La 
FX-100 non teme la fatica: la testina di 


Inseritori automatici di fogli singoli. 


EPSON m 




I Istogrammi 

di Fuhrizio Pascolini - Ostia ( Roma ) 
Sono un ragazzo di 15 anni e desidero 
proporre qucslo mio programma da usare 
con il Vie 20 inespanso. 

Dopo aver digitato il programma e dato 
il Run. si deve attendere per alcuni secondi 
durante i quali il computer carica i nuovi 
caratteri grafici (da me ridefiniti) dopodi- 
ché compare il menu che indirizza nella 
scelta delle varie operazioni da compiere. 
Per le varie opzioni vengono utilizzati i 
tasti (unzione di ordine dispari e la freccet- 
ta orizzontale. L'inserimento dei dati si 
ottiene premendo fi; f3 permette di avere 
la lista completa (sullo schermo) dei dati 
inseriti che possono essere azzerati pre- 
mendo la freccetta orizzontale. Infine con 
f3 ed (5 si tracciano i diagrammi in vertica- 
le o in orizzontale. 

Le barre usate per i diagrammi non sono 
continue ma vengono, per mia scelta, inter- 
rotte ogni otto pixel. Se comunque si desi- 
derano delle barre continue basta modifi- 
care le linee 245 e 450 come segue: 

245 W = W + 1 ; IF W = 8 THEN W = 0:Y = Y+1 
450 W= W + 1 : IF W = 27 THEN W = 19:Y = Y + 1 
Effettuando questa modifica si deve pe- 
rò cambiare il numero 945 che compare 
nella prima linea di programma con quello 
ottenuto da: 

CLR: PRINT FRE(O) 

Alla fine di ogni operazione per ritorna- 
re al menu principale basta premere H. 


Commenti 

Il nostro lettore ci propone un argomen- 
to già abbastanza sfruttato, ma pensiamo 
sia il caso di dedicare dello spazio al suo 
programma il quale, oltre a fornirci un 
esempio di definizione di caratteri partico- 
lari. presenta anche un output grafico mol- 
to elegante. 

La prima cosa che vi raccomandiamo é 
di inserire nel vostro Vie inespanso le linee 
cosi come sono senza cercarvi alcuna mo- 
difica affinché il contenuto dei byte liberi, a 
battitura effettuata, risulti 945. Se comun- 
que avete necessità di apportare delle mo- 
difiche ricordatevi di sostituire al numero 
945 della linea 5 il valore corrispondente al 
numero effettivo di byte rimasti inutilizza- 
ti. 

Come già detto, il tasto fi inizializza la 


5 PRINT":!" P0KE368?9,25 1FFRE' 0;>945THENGOTO700 
10 DIMVC20) 

30 FORN=1T0216 REfiDH : P0KE7167+N, A NE .1 PJ=CHR*< 
35 RESTORE F0RN=1T0216 PERDA NEXT P0KE36869, 255 
3 PPIIIt l .'£l»IMI M t~ K I I I" PRINT" :*M*I I ' 
45 PRINT •SWBB , Pt ,l H"P*“ HELP«.MENUV PRINT"a 
50 PRINT" a"P*"Fl"Pf” INPUT URTI" PRINT" S 
55 PRINT" S“P*"F3"P$” LISTR ORTI" -PRINT" a 
3 PRINT "S“P*“F5"P*" RRPP. VERT 1 C RLE " PRINT" 3 


T I J LJ" PRINT" 


65 PRINT"a"P*"F7"Pt" RfiPP.ORIZONTRLE" PRINT"a 

67 PRINT"a"P*"-"P*” CRNCELLR IrftTl" PRINT "a ” 

70 F0RN=1T015 ; RERDfi ; PQKE8166+N. fi ; PQKE38S86+N - 6 NEXTN 
75 GOTO600 

120 PRINT" rSaRMIi NSERISt 1 DATIM" POR E 36863 . 240 FORN-1TO20IFN<10THENPRINT"«I”N 
122 IFN>9THENPRINTN, 

125 INPUTV<N> IFV(N)>168THENPRINT"?RED0 FROM STfiRT MAX168" : G0T0125 

-0 NEXT GOTO608 

200 PRINT":»" M=-l P0KE36869.255 

210 FORN=0TO21 P0KE7681+N422, 15 ; POKE38401+N*22 0 NEXT 
220 FORNAI T022 P0KE8164+N. 227 POKE38384+N,0 NEXT 

230 PRINT"«Wr I ■ J K 1 1 MfHttWTK li K I ItifltìtìlK ' ' 

240 F0RN-1T028 

242 F0RJ= ITOVI NJ 

243 IFVCN)=0THEN250 

245 U=W+ 1 I FW=8THENU=0 • PÙKE8 1 43+N-22*V , 6 Y=V+ 1 
248 F0KES143-22*V+N, W P0KE38863-22*Y+N, 6 
250 NEXTJ : W“-l : V“0 
260 NEXTN • GOTO600 

: :a print“3“ : P0KE36869, 240 • print " tsmìmmìi mwtNNHnmaiAi 1 11 

310 FORN=1TO20 

315 I FN C 1 0THENPR I NT " “Ni "«•”V<N> 

'a IFNJ9THENPRINTN; “«-“V<N.> 

5 NEXTN : GOTG600 

..0 PRINT"."»" P0KE36869.255 FÙRN=0TO21 POKE8120+N .16 POKE38840»N, 0 NEXT W=18 
410 FORN»0TO20 : POKE7680+22#N,231 :POKE38400+22*N.0 NEXT POKE8120. 18 POKE38840.0 

430 FORN=1TO20 
435 F0RJ=lT0VfN) 

440 IFV<N)=0THEN465 

450 W=W*1 IFW=2?THENW=19 P0KE?659+N*22+Y , 25 V=V+1 
460 P0K£?659+22*N+ V . U P0KE38379+22*N+V . 6 
465 NEXTJ W=18V=0 
470 NEXTN GOTO600 
500 FORN=1TO20 VTN)=0 NEXT -GOTO300 
3 GETAT IFfi*="i"THEN120 


605 IFfi*= 

' 3 IFfi*= 
615 IFA*= 
620 IFfi$= 
625 IFA*=' 
630 GOTO600 
700 PRINT' - 
710 PRINT 
720 PRINT 
730 PRINT 
740 PRINT 


THEN300 
“THEN200 
"THEN400 
THEN35 
THEN500 

"CHR*< 1 4 » "»>»••! 9»l I 

IIWUESTO PROGRAMMA NON GIRA CON IL COMPUTER ESPANSO. " 
JJ-OVETE SPEGNERE IL VICLEVfiRE L'ESPANSIONE E RICARICARE I 


ROGRAMMfi. " PRINT" MI UON LfiVÙRO ! " 
flUBV -ABRI2I0 -fiSCOLINI" 

,,127-i..,i.127,127 
127, 127, 127, , , , , 127, 127, 127, 127 
:7, 127,127, 127, 127, , , 127 - 127. 127, 127, 127, 127 
127 , 127, 127, 127 . 127-127 , 127, 127, 127, 127, 127, 127 
5020 DATA60-66, 153, 161 , 161 , 153,66,60 
5025 BATA101, 85, 85, 119, 82,82, 98.0 

5030 DAT A46 . 34 , 34 , 46 , 40 , 40 , 46 , 0 , 23 1 , 1 64 • 1 64 , 1 64 , 1 64 , 1 64 , 228 , 4 

5035 DATA2, 10, 10, 10, 14,2,2,0 

5040 BRTA14, 10, 10, 14, 10, 10, 14.0 

5045 DfiTA46 , 40 . 40 , 46 ■ 42 . 42 • 46 • 0 

5050 DATA? .4, 4. 4, 4, 4, 4, 4 

5055 DATAI . 1 . 1,255.,,, ,224,160, 160. 160, 160 160,224,0 

5060 D 


5065 BATA128, 128, 128, 128 
5070 DfiTfi224,224,224,224 
5075 BATR248-248,248.248 
5080 DRTA254 , 254 , 254 . 254 
5085 DAT A8 , 1 60 , 9 . 1 60 , 1 34 
5090 DATA140, 137, 142,13? 


0. 192, 192. 192, 192, 192, 192, 192,0 
0,240,240, 240 , 248 ,240,240, 240 - 0 
0.252. 252 , 252 - 252 , 252 ,252,252,0 
0 , 255, 255 , 255 , 255- 255 , 255 , 255, 0 
147, 131, 143 


MCmicrocomputer n. 38 - febbraio 1985 


123 


procedura di inserimento dati che possono 
essere al massimo 20; se quelli a disposizio- 
ne sono in numero minore basta inserire 
"0" e premere Return fino a che la macchi- 
na smetterà di mostrarci il punto interro- 
gativo dell'Input. A questo punto potremo 
avviare il tracciamento dei diagrammi sia 
in verticale (partendo dal basso) che in 
orizzontale (partendo da sinistra) median- 
te la pressione di f5 o di 17. Sullo schermo 
vengono mostrati anche gli assi quotati 
(sulle ordinate o sulle ascisse a seconda del 
tipo di tracciamento) con i numeretti otte- 
nuti ridefinendo alcuni caratteri della mac- 
china. Non aggiungiamo altro anche per- 
ché sul modo di ridefinire dei caratteri da 
parte dell'utente avremo modo di parlare 
presto. In un riquadro riportiamo alcune 
note relative alio svolgimento del pro- 
gramma. 


Note relative al programma 

5 Pulisce e cambia schermo e 
controlla la memoria: se il 
Vicèespanso. manda al mes- 
saggio di errore (700) 

1 0 Dimensionamento della ma- 
trice che contiene i venti va- 
lori degli istogrammi 
30 Carica nuovi caratteri grafici 
35 Annullai data per arrivare al 
Copyright 

40-67 Stampa menu 
70 Stampa Copyright 
120-130 Subroutine per l'acccttazio- 
ne dei dati 

200-230 Stampa schermo per la rap- 
presentazione verticale 
240-280 Disegno degli istogrammi 
300 Stampa schermo per la lista 
dei dati 

310-325 Lista dati 
400-420 Stampa schermo per la rap- 
presentazione orizzontale 
430-470 Disegno degli istogrammi 
500 Cancella dati 

600-630 Subroutine per l'acccttazio- 
ne dei tasti di comando 
700-740 Stampa messaggio di errore 
5000-5090 Data per i nuovi caratteri 
grafici 


I PRINT AT 

di Francesco de Colle 
Civitavecchia (RM) 


Print At è un programma utility che si- 
mula sul Vie l'istruzione "PRINT AT" 
mancante su questo computer. Il program- 
ma è talmente semplice che ritengo super- 
flua qualsiasi spiegazione, anche perché ho 
introdotto la linea 30 a titolo dimostrativo. 

Accenno solamente al fatto che la routi- 
ne viene richiamata con un Gosub 10000 e 
per posizionare il cursore o una frase in 
una qualunque posizione sullo schermo (è 
questa la funzione di PRINT AT basta far 
eseguire: 


10 REM 

11 REM 

12 REM PRINT RT 

13 REM LR LINER 30 E DI M0STRRT IVA 

14 REM 

15 REM 

20 GOSUB 10800 

30 PR I NTHH$XX$ < 2 > VY$ d 5 > " MC M I CROCOMPUTER " 

9993 END 

10000 DIMXX$<21> 

10005 D I MW$ < 22 ) 

10010 HH$="3” 

10015 FORKK=0TO21 

10020 xx*«xx*+"M" 

10025 XX$<KK)*XX$ 

10030 NEXT 
10035 FORKK=0TO22 
10040 VV$=VV$+"W" 

10045 vv$c:kk>=vv$ 

10O50 NEXT 
10055 RETURN 


GOSUB 10000: PRINTHH$XX$(X)YY$(Y) 'mes- 
saggio..." 

dove X e Y sono le coordinate del punto da 
cui si vuol fare iniziare il messaggio. 

Commenti 

Effettivamente il programma proposto é 
molto semplice in quanto sfrutta per lo 
spostamento del cursore la funzione svolta 
dai tasti Crsr implementata da program- 
ma. In pratica, la parola viene scritta in 
posizione X + 1 e Y + 1 partendo da zero. 
La routine illustrata può essere molto utile 
in quei programmi in cui si ha bisogno di 
mostrare dei risultati incolonnati a sinistra 
o affissi in punti calcolati sullo schermo. 

Il segmento proposto ci offre comunque 
l'occasione per mostrarvi degli altri meto- 
di. un po' più immediati, per il posiziona- 
mento di scritte sullo schermo. Non entre- 
remo molto in dettaglio, ma esamineremo 
solo il modo in cui operare. 

Il primo, forse il più sofisticato, consiste 
nell'impiegare una routine del sistema ope- 
rativo a cui faremo gestire la posizione di 
un messaggio sullo schermo ed alla quale si 
può accedere con una SYS. precisamente 
con SYS 65520. 

I parametri, cioè le coordinate del punto 
da cui vogliamo che inizi la scritta, vengo- 
no passati per mezzo dei registri X e Y ai 
quali si può accedere semplicemente intro- 
ducendo i valori da immagazzinare in essi 
nelle locazioni decimali 78 1 e 782. Il tutto si 
riduce ad una sola istruzione, che potrebbe 
essere considerata in un programma come 
una subroutine di posizionamento, cosi 
composta: 

POKE 781,X:POKE 782.Y.SYS 65520: RETURN 
dove X e Y rappresentano le coordinate di 
riga e di colonna. Per esempio, se vogliamo 


scrivere "CIAO" in posizione ( 10,15) ba- 
sterà eseguire: 

10 GOSUB 100 
20 PRINT "CIAO" 

30 END 

100 POKE781 , 10:POKE782, 1 5:SYS65520 
110 RETURN 

Un secondo metodo consiste nel forzare 
ad un vaiorei contenuti delle locazioni 214 
e 21 1 che contengono rispettivamente l'in- 
dice di riga e di colonna da cui vogliamo 
che inizi la scrittura sullo schermo. In altre 
parole per scrivere " CIAO" a partire dalla 
posizione (R.C) ( R = riga; C = colonna) 
dovremo far eseguire: 
POKE214.R-1:PRINT:POKE211,C:PRINT'CIAO" 

Ricordate di non omettere il PRINT tra 
le due Poke; inoltre ai parametri non van- 
no dati valori che siano superiori al nume- 
ro di righe o di colonne effettivamente di- 
sponibili per evitare che succedano cose 
strane. 

Un terzo modo é simile al precedente, 
ma ci permette di utilizzare un parametro 
di colonna che va da 0 a 255 usando il 
comando Tab(x). Naturalmente quando 
viene superato il numero di colonne dispo- 
nibili si ricomincia dalla colonna 0 della 
riga immediatamente successiva. L'istru- 
zione completa da dare è la seguente: 
POKE214,R:PRINT:PRINTTAB(C) 

Anche in questo caso non si deve supera- 
re nella Poke il numero di righe effettiva- 
mente disponibili. 

Vogliamo come ultima cosa specificare 
che con i melodi che abbiamo esposto non 
si posiziona il cursore in un certo punto, 
ma si ottiene di cominciare a scrivere una 
parola (o una variabile) da quel punto. Per 
sortire il primo effetto rimane utile la routi- 
ne del nostro lettore. 


124 


MCmicrocomputer n. 38 - febbraio 1985 


I Gestione C/C 

di Marco Mastri - Ancona 
Il programma Gestione C/C é un adatta- 
mento al Vie 20 di quello pubblicato nel 
numero 28 per il Commodore 64. Descri- 
viamone brevemente lo svolgimento. 

Dato il Run appare un menu e secondo 
la scelta effettuata si passa alle operazioni 
previste e cioè: 

I Lista operazioni 
2 Inserimento operazioni 
3 Calcolo interessi 
4 Salvataggio dati 
5 Caricamento dati 
6 Fine lavoro 

Naturalmente la prima volta si deve ne- 
cessariamente scegliere l'opzione 2che per- 
mette un primo inserimento dei dati. La 
data va digitata immettendo il giorno e il 
mese separati dalla virgola per ogni nuova 
operazione e alla richiesta "causale" biso- 
gna rispondere con un massimo di dieci 
caratteri. Se invece di versare abbiamo pre- 
levato dobbiamo scrivere “prelievo" o 
"pagamento" altrimenti il programma non 
detrae l'importo dalla cifra totale. 

Con l'opzione 3 si calcolano gli interessi 
maturati; il calcolo viene chiuso con la da- 
ta di (Ine anno. Il programma calcola an- 
che se durante il periodo di giacenza dei 
capitale vi sono state delle variazioni sul 
tasso d'interesse. 

Terminato l'inserimento dati, battendo 
"4" essi vengono salvati su nastro, previo 
l'inserimento del numero di conto corren- 
te. A questo proposito vi ricordiamo di 
prendere nota del numero segnato sul con- 
tagiri per poter posizionare il nastro al mo- 
mento opportuno sul punto desiderato. 

L'opzione 5 serve per richiamare i dati 
prima di ulteriori registrazioni e con la 6 si 
termina il lavoro. 

Il programma funziona egregiamente 
però bisogna fare attenzione ad inserire la 
percentuale di interesse al netto delle trat- 
tenute ed inoltre nel resoconto di fine anno 
non risultano gli oneri per le operazioni o il 
costo dei blocchetti di assegni addebitati. 

Per gli anni bisestili ricordate di cambia- 
re i dati alla linea 50160 con i seguenti: 0, 
31.60.91. 121. 152, 182.213.244.274.305, 
335. 

Commenti 

Il programma proposto fa parte di un 
pacchetto software inviato dal nostro let- 
tore (di cui pubblichiamo un ulteriore pro- 
gramma in queste stesse pagine) ed ha bi- 
sogno di pochissime precisazioni. 

Per quanto riguarda l'introduzione del 
tasso di interesse, il programma ci chiederà 
il valore netto di tale tasso e il periodo di 
tempo a cui esso si riferisce, ad esempio 
1 2% fino al 20/3, 1 1 % fino a 1 3/6 e cosi via. 
Se non ci sono variazioni, basta inserire il 
valore dell'interesse seguito (dopo il Re- 
turn) dalla data dell'ultimo giorno dell'an- 
no. Può inoltre essere utile prevedere una 
routine che stampi su carta i risultati otte- 
nuti. 


12 REM BESTIONE C/C BANCARIO 

13 REM 

14 REM 

40 P0KE36879.23 

30 OOSUB50000 

120 PRINTTMI PRELIEVI! DEVONO ESSERE SPECIFICATI CON 
«WBDESTIONE C/C", "INDICE" : PRINTL* 

.SCI]! LISTA OPERAZIONI 
NT" «23! INSER. OPERAZIONI" 

'TÌC33! CALCOLO INTERESSI 
"aC43B SALVATAG0I0 DATI 
•"SC5JB CARICAMENTO DATI 
•“«631 FINE LAV'RO*" 

— "'HO SCEGLI 4C 3" 

280 GETR* IFA*<"1"ORA*>"6"GOTO280 

300 ON VAL < A* > GOSUB 1 020 , 2000 .3000.4000,5000.6000 

320 GOTO 120 

1020 FORJ*0TOND:N*N+1 PRINT"CBLISTA OPERAZIONI N. "N 

1040 PRINT" i , 1 

1060 PRI NT" I DATA I" 

:::s print" i 1 

106? PRINT" ICAUSALE I 

1070 PRINT" I 1 

1075 PRINT" I IMPORTO I 


PRELIEVO! 0 PAGAMENTO 


'I(K) GOSUB 10000 

60 PRlNT“*Mnai"TAB<10>D* PRINT PRINTTAB<10>C#CK> PRINT PRINTTABOJM* 
" STATE ESEGUITE“ND+1 "OPERAZIONI" 


62 PRI NT “VUOI VEDERE UN'ALTRA OPERAZIONE 
65 GETR* IFR*=""THEN1 165 
“ NE/T NEXT GOSUB 1 0 1 00 : N«0 
1200 PR I NT "tlPl EPILOGO TOTALI" PRINTL* 

1220 NN-TA GOSUB10000 PRINT"T. AVERE-"X* 

1 240 NN«TD ^ GOSUB 1 0000 PRINT"T0T. DARE" " X* 

1260 NN»TA-TD • GOSUB10000 ' PRINT"SALD0 »"X* 

1280 GOTO10100 

2000 ND“ND+ 1 : PR I NT ” 31 NGRESS0 OPERAZIONE N. "ND+r PRINTL* 
2040 CH-1 

0 INPUT"DATA CGG,MM)";G,M 
0 VX»G+M*100 

0 FORJ»0TOND : IFVX<V!4CJ>THENK*J : J"ND ■ NEXT : GOTO2300 
0 NEXT K-ND 
-.40 VXCK >"VX 
2160 I NPUT " CAUSALE " ; C*C K ) 

2180 INPUT" IMPORTO", I<K> 

2190 IFC*CK>- M PRELIEV0"0RC*CK>- 
2200 TA-TA+ICK) 

*'*0 PRINT" 3CDIP ALTRO DATO 
2240 GETA* IFA*""M“THENRETURN 
2260 IFAJO " D" THEN2240 


'PRGAMENTO"THENTD"TD+I CIO : 1 0O»-I CIO ■ GOTO2220 
MENU'" 


2520 VJCCJ+l >«VXCJ> .C*CJ+1>«C*CJ) ; ICJ*1)"I 
2540 NEXT G0T02 140 

0 PRINT" IXALCOLO INTERESSI " PRINTL* 

0 J«1 PRINT"»” 

0 INPUT "INTERESSE i IN: INCJ3-IN/100 

0 INPUT"FINO AL",G,M D>iCJ>-G!CCn>*G 
.0 IFD7.CJX365THENJ=J*1 GOTO3060 
20 PRINT "RIEPILOGO DI FINE ANNO" 


I PRINTTABC5V- 


3240 D"KCCVXCJ>/100>+VALCRIGHT*CSTR*CVJSCJ»,2>> 
3260 I FD>DX C IO THENGOSUB3800 

3280 Sfl-SA*ICJ) NN»NN*ICJ>»INCK)/365*C366-D> NEXT 


0 PRINTTABC5)"- 

0 NN=TA-TD+NN : GOSUB10000 : PRINT" SALDO AL 
0 GOTO10100 

0 DI=CINCK+l)-lNCK)>*SA*C366-DXCK»/365 

3820 NN“NN+DI K«K+1 RETURN 
3840 I FD2 C K > “365THENRETURN 
3860 GOSUB3800 GOTO3840 
4000 PR I NT "dlBALVAT AGGIO DATI" : PRINTL* 

" INPUT"BMCODICE CONTO" iNF* 

4060 GOSUB 1 0 1 00 : PR I NT " TT1" SP* : IFPEEKC 1 )RND16*0GOTO4100 
4080 PRINT”T “ 


EMI SCRECORD! E PLRVI!" URITI, 16, 16 

4100 0PEN1, I,2,NF* 

4120 PRINT»l,NDiT*;TAiT*iTD 

4 1 40 FOR J-0TOND : PR I NT# 1 , VX C J > ; T* ; C* C J> ; T* ; I <J> : NEXT 
4160 CL0SE1 

4188 PRINT"TREMI atST0P3! SUL REGISTRATORE" URITI , 16, 16 
4200 CH=0 RETURN 

5000 IFCH*1 THENSB- 1 : GOSUB6000 ■ SB"0 
5020 PRINT" CBLETTURA ARCHIVIO" ■ PRINTL* 

5040 NF*=" " : INPUT"*BC0DICE CONTO" INF* 

5060 GOSUB10100 PRINT "TTT'SP*- IFPEEKC 13AND16-0GOTO5100 

"0 pRiNT'^aaaaaaaapREni bcplavj! sul registratore" uriti, 16, 16 

5100 0PEN1 , 1,0, NF* 

5120 INPUT»1,ND,TA,TD 


MCmicrocomputer n. 38 - febbraio 1985 


125 



to dello schermo sovrapponendosi alla 
parte di programma appena listato. 

Commenti 

Il "trucchetto" proposto da Antonio 
Cassatelia è interessante ed é più efficace di 
tanti altri anche se con i mezzi adatti (ad 
esempio una stampante) non è difficile in- 
tercettare le linee protette: non è comun- 
que del tutto immediato nel senso che non 
basta dare OPEN 5.4:CMD5:LIST perché 
le linee interessate vengano alla luce. In 
ogni caso inserendo molte delle protezioni 
proposte in un programma si riesce a met- 
tere in difficoltà i curiosoni. Riteniamo co- 
munque che sia necessaria un’ulteriore 
protezione per evitare il "travaso" del pro- 
gramma su cassette o dischi. Consigliamo 
inoltre di utilizzare l'ultima soluzione pro- 
posta non da sola, ma insieme alla prima 
poiché in quest'ultimo caso viene resa più 
efficace. 

Forse è inutile aggiungere che premendo 
i tasti indicati dal lettore insieme allo 
SHIFT vedrete comparire le virgolette 
(premendo il 2) e dei caratteri grafici (pre- 
mendo gli altri tasti). 


I ANTI LIST 

di Antonio Cassatelia - Roma 
Sono un assiduo lettore e vi scrivo per 
proporvi la soluzione di un problema ap- 
parentemente insolubile: la protezione dal 
List. Da quanto pubblicato su vari numeri 
della vostra rivista si deduce che qualun- 
que operazione di protezione (disabilita- 
zione del List con lo spostamento dei pun- 
tatori ed eventuale disabilitazione del tasto 
Stop) diventano inutili se prima non viene 
fatto girare il programma. 

Quella che io propongo è invece una 
protezione immediata ANTILIST che agi- 
sce ancora prima che sia dato il Run. 
Provate a digitare quanto segue: 

1) 0 REM 

2) CTRL + RVS ON 

3) tenendo ora sempre premuto il tasto 
SHIFT eseguite la seguente sequenza pre- 
mendo in totale cinque tasti: 2 M CRL/ 
HOME 2 L 

4) rilasciate il tasto SHIFT e premete 
Return. 

Provate ora a chiedere il List e vedrete 
che sorpresa. La sequenza precedente può 
anche essere messa alla fine di una linea 
Basic per proteggere tutto ciò che segue. 

Un'alternativa al metodo appena visto 
potrebbe essere quest'altra di sicuro effet- 
to. Digitate nel mezzo di un programma 
quanto segue: 

I) 1000 REM 

2) CTRL + RVS ON 

3) lenendo premuto il tasto SHIFT pre- 
mete uno dopo l'altro i tasti 2 M 

4) rilasciale il tasto SHIFT 

5) premete il tasto CLR/HOME e quin- 
di Return. 

Quando la linea verrà incontrata ese- 
guendo un List, il listalo riprenderà dall'al- 


- CALCOLO DISPERSIONE TERMICA - 


30 BIS-"3" 

40 PRINTBI* 

100 INPUT "TEMPERATURA INTERNA “ 
110 I NPUT " TEMPERATURA ESTERNA " 
120 INPUT "ALTEZZA AMBIENTI". AA 
150 PRINTBI* 

152 PRINT" IMMETTERE LA PAROLA 
200 INPUT "NOME DELL'AMBIENTE " 
210 I F NA*» "FINE" THENGOTO950 


FINE! PER TERMINARE” 


560 GOTO300 
600 OOSUB4000 
700 OOSUBS000 
000 PT»TS+QV+QR 

801 PRINTBI* 

802 PRINT"TOTALE CALORE DISPERSO DAL LOCALE * 
886 T1-T1+PT 

888 PT-0 
818 OOSUB 10000 
900 OOTO150 
950 PRINTBI* 

955 PRINT” TEMPERATURA INTERNA »",TN 
T" TEMPERATURA ESTERNA = ~ 


0 PRINT 
965 PRINT 
978 PRINT 
972 PRINT 

975 PRINT 

976 PRINT 
980 PRINT 

984 PRINT 

985 PRINT 

986 END 
1000 su: 


ALTEZZA AMBIENTI»" ;AA 

SCALORE TOTALE DISPERSO- 
MURI E FINESTRE » "iT4 
PAVIMENTI E SOFFITTI»" iT3 
RICAMBI D'ARIA»" iT2 

POTENZIALITÀ' DELL' IM-PI ANTO TERMICO»" . INTUÌ > 
SFINITO!" 

25 


1007 KCC1>»2.2 
8 KCC2>»1.8 

9 KC<3)»1 .6 

1018 PRINTBI* 

1012 PRINT"R0UTINE PARETE CALCOLO DISPERSIONE CALORE" 
1014 PRINT 

1016 PRINTNA* 

1017 PRINT ; PRINT"SE NON CI SONO ALTRI LATI DISPERDENTI 

1018 OOSUB 10008 


1025 PRINT"TIP0 PARETE <MM7MC/«-) 


126 


MCmicrocomputer n. 38 - febbraio 1985 


1030 IFTP*= " THENRETURN 

1040 IFTP*0“MM"ANDTP*0"MC"THENPRINT“ERRGRE SUL TIPO PARETE" GOTO 1020 
1050 PRI NT "SPESSORE DELLA PARETE < 25/38/50 >" INPUTSP 


. . 1 GOTO1070 

1090 IFN*0THENPRI NT "ERRORE SULLO SPESSORE" OOTO1050 
1100 IFTP*="MM"THENGOTO1120 
0 K=KC<N> GOTO 1200 
1120 K=KM<N> 

1200 PRINT-'ESPOSIZIONE ■.NORD/SUD/EST/OVEST»" INPUTES* 

T" LUNGHEZZA PARETE IN UT " INPUTLP 

1220 IFES*=“N0RD"THENP=1.2 G0T01282 
1240 1FES**”0VEST"THENP=1 . 1 GGT01282 
1260 I FE 3* = " EST " THENP= 1 . 1 5 G0T0 1 282 
1280 P=1 


1288 PRINT"FATTORE MOLTIPLICATIVO PER L'ESPOSIZIONE P 
1292 PRI NT "LUNGHEZZA PARETE MT.= ",LP 
1294 OOSUB 10080 
—0 RETURN 
2080 PRINTBI* 

2820 FRI NT "ROUTINE FINESTRA CALCOLO DISPERSIONE DEL 
2030 PRI NT 
2040 PRINTNA* 

2100 AF=0 

2150 PP1NT”AREA DELLA FINESTRA IN MT. IMM 


B PER TERMINARE" INPUT AI 


2200 I FA I =0THENGOTO2300 
2250 AF=AF*AI 
2268 GQTO2150 
2300 QF=AF*5*P*< TN-TE) 

2306 PRI NT “AREA TOTALE FINESTRE MQ.= ’.AF 

2310 PRI NT "CALORE DISPERSO DALLE FINESTRE ' CALORI E.’QRA>=",QF 

2315 GOSUB 10000 

2350 RETURN 

3000 SR=CLP*AA)-RF 

3150 QM=SR*K*P*( TN-TE) 

3280 QP=QM*QF 

3201 PRI NT "CALORE DISPERSO DAL MURO ‘.CALORI E/ORA; =",QM 

3202 PRINT'PERDITA DI CALORE (MU-RO+FI DESTRE CALORIE/ORAj=" ,QP 

3204 T4=T4*QP 

3240 GOSUB 10008 
3250 RETURN 
4080 PRINTBI* 

4020 PRINT "ROUTINE PAVIMENTO CALCOLO DISPERSIONE CALORE" 

4030 PRINT 
4040 PRINTNA* 

4100 QV=0 
4110 AT-0 

4112 PR1NT"N.B. IN QUALUNQUE CASO VA IMMESSO IL NUMERO DI ZONA IN CUI" 

4113 PRINT "E STATO SUDDIVISO IL PAVIMENTO" 

4115 PRINT" INIZIANDO DHL NUMERO PIU ALTO ES. UNA CAMERA DIVISA IN 3 ZONE DIGIT 
ARE 3 2 1" 

4168 PRINT"NUMERO DI ZONA •. IMMET-TERE - PER TERMINARE)" INPUTNU* 

4170 I FNU*=" THENRETURN 
4200 INPUT "PRIMO LATO PAVIMENTO", LI 
4210 PRINT" SECONDO LATO PAVIMENTO" INPUTL2 
4250 A1»L1*L2 

4260 AT=HT»A1 

4261 PRINT" INSERIRE UNO DEI SE-GUENT I NUMERI " 

4262 PRINT" 1 -PAVIMENTO E TETTO NON DISSIPANO CALORE 

4263 PRINT"2*DISSIPA IL PAVIMENTO 

4264 PRINT"3=DISSTPA IL TETTO 

4265 PR I NT "4*D ISSI PANO ENTRAMBI 

4266 PRINT" IMMETTERE OPZIONE SCELTA" INPUTC 

4267 I FC= 1 ANDVAL <NU*)=1 THENRETURN 
4275 ONCGOTO4300,4350, 4400, 4450 
4380 GOSUB5000 GOTO4160 

4350 QV=AT*1*<TN-TE) 

4351 PRINT PRI NT “ALTRE DISPERSIONI" 

4352 PRI NT "CALORE DISPERSO ATTRA-VERSO IL PAVIMENTO C CALORI E/ORA>=" , QV 
4354 T3=T3+QV 

4356 GOSUB 10000 
4360 GOTO4160 
4480 Q7«AT*2* (TN-TE ) 

4401 PRINT PRINT" ALTRE DISPERSIONI" 

4402 PRI NT "CALORE DISPERSO ATTRA-VERSO IL TETTO (CALO-RI E/ORA )=",QV 


4450 QV-HT*3* (TN-TE > 

4451 PRINT PRINT"ALTRE DISPERSIONI" 

' 4452 PRINT "CALORE DISPERSO ATTRAVERSO TETTO E 


4460 GOTO4160 
4500 RETURN 

5008 QR=AT*AA*.3»‘ TN-TE) 

5016 PRI NT "CALORE DISPERSO DURANTE : 


PAVIMENTO (CALORI E. ORA) = " , 


RICAMBI D'ARIA < CALOR I E/ORA )«" ;QR 


5019 G 

5020 RETURN 
10000 PRI NT “PREMI UN TASTO” 
10010 GETR* IFR*=" "THEN10010 
10020 RETURN 


■ Dispersione termica 

di Marco Mastri - Ancona 
Scopo del programma è di calcolare le 
superfici radianti e la potenza del bruciato- 
re per un'abitazione. 

Dopo il Run. per prima cosa vengono 
chieste la temperatura interna che si vuol 
mantenere e quella esterna mediamente 
prevista: poi bisognerà specificare se la ca- 
sa è costruita in mattoni (MM)o in cemen- 
to (MC). Per agire più speditamente è forse 
il caso di avere sotto gli occhi una piantina 
quotala deM'appartamento; infatti lato do- 
po lato, stanza dopo stanza il programma 
chiede le misure delle pareti, le aree delle 
finestre e porte finestre, l'esposizione (bat- 
tere l'intera parola, p.es. Nord). Quando 
viene chiesto il numero di zone in cui è 
stato diviso un determinato locale ci si rife- 
risce alle aree misurate sopra il pavimento 
(vedi figura I ). 

Al termine delle domande viene visualiz- 
zato il risultato e cioè la potenza termica 
prevista per mantenere la temperatura ri- 
chiesta, a cui è buona norma aggiungere un 
ulteriore 10%. Se si installa la caldaia in 
cucina o in un altro ambiente abitato si 
deve tenere conto che anch'essa è fonte di 
calore. Le pareti, i soffitti ed i pavimenti 
che comunicano con altri appartamenti o 
con le scale interne al palazzo si consider- 
rano non disperdenti. 



I Macchina del tempo 

di Marco Lenci - Corinaldo < AN ) 

Vi invio questo lavoro con la speranza di 
vederlo pubblicato nella rubrica del soft- 
ware Vie 20. Si tratta della traduzione per il 
Vie + 8K dell'adventure "La macchina del 
tempo ". Non mi dilungo sull'uso e la de- 
scrizione del programma dato che di esso si 
è ampiamente parlato nei numeri 27.29.31 
e 34 di MC. C'è invece da dire qualcosa 
sulla traduzione dallo Spectrum al Vie. 

Alla riga 31 ho ripristinalo l'originale 
On Set Gosub 1.1 030, ...com'era nella ver- 
sione originale per il Texas. Ho poi sosti- 
tuito al Beep. 1 ,20 la routine 9 1 00 che gene- 


MCmicrocomputer n. 38 - febbraio 1985 


127 



128 


MCmicrocomputer n. 38 - febbraio 1985 


software 


2 5 

g £ 

jL»j 

Ì|| 

g M 

Mig 0 - 


ISsItg; 

sili 


SL SKL 
Kt? 99= 


£8 

J 


8wS> 

li 


r§gr£§JLÌB$s 

- ■"•“.osgsgsr • 


Il si 1 

a- sa _ 

: 8|||^ 


. |£ 

li 

!# 

ili 


I 

1 siisi 

CL 8ìij£ il 

i, siili 

S?»t* ' 


8» 

il 


58 


liilllllilllllllilSIlllilillllIMmKilgilllillillll 



s 

& 



1 

S 

SÉ 

j % t “ I t 


S= 5 

gl 


il 

p 

% 

oo 


S. ; 

É 


&J 

|E§5 

EJSS 

- ¥ h' 

ge£„ 

“Pii 


II 


i il 


SS “8 :E£: 

i" i! -■ 

gl % 


I s -|É 

g l m 

* 1 Iti 

1 !i 4i 

k #|' Pi 

I* «Il 

ù$ gl gtìts 

oo So ir^z 

5* =*£2- 

.5 sfcssi?. 


Sa: oS u, ogl «S =“ fi'JSgpfoS cTuì -gS^gj = ° £ J? 

s:£zè" 5 s z £ 8g ®giE“|Ìii oz i£“Ì s P «8 eli 


££ z è. 5 s z £ 8£ *gi£“f8§i oz i£“§ 

il55MSsSfiéMS45ÌS5Ìstl5Ş5ÌS3Ì553&£§Ì£§§È 

!S5S3|S||||s||§§8!|!||||8»||||§||5||||||||i||| 


s | 
s Ì 


SS 

2£S 

sysh 


zpòisb 
■ - " 
zSgtoot 


ra un suono, forse nemmeno troppo grade- 
vole, ed ho quindi sostituito la vecchia rou- 
tine che serviva per allungare la stringa BS 
con degli spazi fino al !4mo carattere, dato 
che nel Vie non si presentava nessun incon- 
veniente di Input. Infine c'è da segnalare 
una differenza tra lo Spectrum ed il Vie che 
mi ha creato qualche fastidio e che prima 
non conoscevo assolutamente. Il valore 
numerico di una condizione logica verifi- 
cata è 1 per lo Spectrum e — I per il Vie: mi 
spiego meglio. Digitando Lei A = l: Print 
(A = l) il computer risponderà 0 e 1 se è 
uno Spectrum e 0 e —1 se si tratta di un 
Vie. A causa di questo fatto ho dovuto 
modificare la linea 504. 

Per concludere, è stato aggiunto qualche 
altro comando e cioè: Aiutami, Sfama, Di- 
struggi. 

Spero con questo programma di far con- 
tenti tutti i Vichinghi che come me deside- 
ravano un adventure, dato che per questo 
computer non ne sono apparsi molti sulle 
riviste specializzate. 


Commenti 

Per chi non è al corrente degli avveni- 
menti precedenti forniamo qualche ulte- 
riore dettaglio. Per cominciare, la “Mac- 
china del tempo” è un gioco di Fabio 
Schiattatila pubblicato per il Texas TI/99 
sul numero 27 di MC e successivamente 
adattato da Rino Rugacci allo Spectrum. 

Quella che ci propone il nostro lettore è 
la versione per il Vie 20. 

Il gioco consiste nel ritornare nella no- 
stra epoca da un'epoca passata per mezzo 
di una macchina del tempo che però ha 
esaurito la propria energia. Dovremo allo- 
ra metterci alla ricerca della fonte di ener- 
gia (rappresentata da alcune batterie) af- 
frontando i vari pericoli nell'ambiente che 
ci circonda. Durante il percorso raccoglie- 
remo alcuni oggetti che potranno esserci 
utili per superare qualche problema, come 
l'apertura di una porta per mezzo di una 
chiave prelevata durante il percorso. Natu- 
ralmente non potendo portare con noi tutti 
gli oggetti trovati dovremo effettuare delle 
scelte. 

I verbi riconosciuti dal programma so- 
no: 

prendi rompi 

piglia accendi 

posa leggi 

lascia sblocca 

butta inserisci 

apri aiutami 

nutrì sfama 

alimenta distruggi 

nuota 

Le frasi riconosciute sono composte da 
un verbo, un articolo e dal nome di un 
oggetto. Per finire, la parola “inventario” 
fornisce l'elenco degli oggetti che possedia- 
mo. MC 


MCmicrocomputer n. 38 - febbraio 1985 


129 


Dal 1 9 al 23 aprile 
alla Fiera di Milano 
oltre centomila persone 
visiteranno il 
Salone dell'Informatica. 

In gran parte saranno 
utenti finali alla ricerca 
di soluzioni complete. 

Molti potrebbero trovarle 
nel vostro stand 

Perché non esserci? 


SALONE 

DELL’ 





i 

« PROFESSIONAL » 

l'informatica, la telematica 
l’office automation per l'azienda, 
aer il professionista, il commerciane 
gli Enti pubblici, le banche, ecc. 

1 

NOVITÀ 1 985: DUE AREE ESPOSITIVE 

1 

AREA « COMPUTER SHOW » 

il nuovo grande appuntamento 
con l'informatica giovane. 

La mostra nella mostra 
interamente dedicata a: 

f 

A 

^ hobby, didattica, ^ 

videogiochi 



C Segreteria: E.P.I. - ENTE PROMOZIONE INFORMATICA 

Via Marochetti. 27 - 20139 MILANO - Tel. (02) 5693973-5398267 


1 Fiera di Milano 
>19-23 Aprile 1985 



A 


cura di Leo Sorge 


programma in sé. Abbiamo aggiunto solo 
una POKE 650.128 in linea 100. per avere 
la ripetizione automatica su tutti i tasti: 
inoltre riportiamo a parte le linee 1110- 
1240 e 1250-1340 con le opportune corre- 
zioni per usare il disco anziché il registrato- 
re (ovviamente tramite lìle sequenziali). Il 
lesto del lettore, anche se particolarmente 
succinto, è del tutto chiaro, e spiega quasi 
tutto. Aggiungiamo un paio di cose emerse 
durante la prova, che è bene sapere. 

La prima precisazione riguarda il Dele- 
te. Il tasto Inst Del conserva la sua prima- 
ria funzione, che è quella di cancellare il 


Anche questo mese, grazie agli innumere- 
voli lavori < lei lettori, abbiamo scelto parec- 
chie cosine. Compito faticoso, perchè si trat- 
ta di decidere tra tanti programmi, tutti più 
che meritevoli di pubblicazione. A tal propo- 
sito. anche senza far nomi, vorrei rincuorare 
alcuni lettori che ci hanno inviato lavori ci- 
clopici (studio del sistema solare : studio dei 
sistemi nel tempo e nella frequenza; utility 
varie l . i quali pur essendo tra i più grudii i 

— attendono spazio a sé. non polendo mono- 
polizzare una puntata del software ma ne- 
cessitando a loro volta di 6. R e anche più 
pagine. Troveranno (prima o poi...) una 
collocazione, come quella data al program- 
ma sull' RTTY pubblicato su MC n. 30. 

Ma veniamo ai programmi di questo me- 
se. L'apertura viene concessa a I wordpro- 
cessor di Ermanno Mantovani, che pur a- 
vendo lavoralo esclusivamente in Basic ci 
offre un comodo mezzo digestione dei nostri 
testi. Seguami poi Helicopt. un gioco dalla 
grafica eccellente, realizzato da Roberto 
Lombardelli , e due utili routine, delle quali 
una ruota di 90 gradi ( a destra e a sinistra ) i 
caratteri Commodore, mentre l'altra abilita 
Tautorun da disco con poche righe in Basic. 

Anche se in questo numero non c è nulla in 
linguaggio macchina, contiamo di tornare 
sull'argomento fin dal prossimo mese. 

I Wordprocessor 

di Ermanno Mantovani 
S. Antonio in M. Novi ( MOl 
Dobbiamo riconoscere che questo sem- 
plice editor di lesti ci è piaciuto molto, e per 
più di un motivo. Innanzitutto dimostra 
che il Basic consente parecchie libertà, non 
sempre da pagare con listati macchinosi ed 
esecuzioni rallentate: poi perché l'algorit- 
mo è facilmente comprensibile, e dunque 
modificabile: infine perché non fa ricorso a 
nessun trucco proprio dello specifico com- 
puter. permettendo un'agevole digitazione 
ai possessori del 64 e una quasi immediata 
trascrizione su altri home computer. 
Passiamo adesso ad alcune brevi note al 


Questo programma è disponibile su 
cassetta presso la redazione. Vedere l'e- 
lenco dei programmi disponibili e le 
istruzioni per l'acquisto a pag. 153 


100 PRINTCHR$<14>,CHRt<8> : P0KE 650,128 


3 REM 


120 REM 

130 REM * WORD PROCESSOR • 

140 REM * * 

150 REM * COMMODORE 64 * 

160 REM * * 

170 REM * BV MANTOVANI ERMANNO * 

180 REM * * 

230 REM ************************** 

240 POKE53280, 0 : P0KE53281 , 0 : PRI NT "33" 

250 DIMX*<2000> : B$=" " FGRJ=1TO80 • B*=B*+" " : NEXTJ 
260 FORI=0TO3 
270 FORJ=0TO9 

280 Dt=D*+RIGHT*(STR*(J>.n 
290 NEXTJ, I : J=0 
300 REM 

310 REM INZIO DELL'EDITOR 
320 REM 

330 PRI NT" ^''SPC C 1 0 > " 3" LEFTt < D* - 30 ) 

340 I=0-PRINTRIGHT*(B*+STR*(J)+" ",10>;"S1", 

350 GET A* : I F A*» " " THEN350 
360 A=ASC<A$> 

370 REM RI CONSCI MENTO CARATTERE DIGITATO 

380 I F A=20THENGOSUB670 : GOTO350 

390 IFA=13THEN530 

400 I F A=95THEN 1000 

410 I FA= 1 33THEN750 

420 I FA= 1 34THEN 1 880 

430 IFA=135THEN1580 

440 IFA=136THEN1730 

450 I FAC320R < H> 1 27AND A< 1 60 > THEN350 

460 IFA=34THEN350 

470 I F I >79THEN350 

480 X*<J)=X*<J>+A*: 1=1+1 

490 PRI NT 11 II" A* "SI 

500 IFI=20ORI=40ORI=60THEN900 

510 GOTO350 

520 REM ACCETTAZIONE DI UNA RIGA 

530 IF((FRE<0)-<FRE<0K0)*65536»100; AND <J<2000>THEN560 
540 PRINT" NON C'E PIU' POSTO" 

550 GOTO340 

560 PRINT" n" SPC < 1 0 > " 3" LEFT* < Dt , 30 > 

570 IFJ>19THENK=J-19 : GOTO590 


3 F0RM=KT0J 

3 PRINTRIGHT*<B»+STR*<M>+' 
3 NEXTM 
3 J=J+1 
3 GOTO340 


1 , 103LEFT* <X*(M) , 29) 


650 REM CANCELLAZIONE DI UN CARATTERE 
660 REM 

670 I F I< 1 THENRETURN 
680 PRINT" wia 8 ll"i 
690 1=1-1 

700 X*<J)=LEFT*<X*(J),I> 

710 RETURN 
720 REM 

738 REM PROCEDURA CHE SIMULA IL LIST 
740 REM 

750 IFI50THEN350 
760 N$="" PRINT"ILIST a B"i 
770 GETA* : IFA*=" "THEN770 
780 IFA*=CHR*(13>THEN840 
790 A=VAL<A*) 

800 I FA<0ORA>9THEN770 
810 PRI NT "II" A*" a 
820 N*=N*+A* 

830 GOTO 770 

840 PRINT"II ":N=VAL<N*> IFN>=JTHENPRINT"ERRORE N. RIGHE=" , < J-l 


MCmicrocomputer n. 38 - febbraio 1985 


131 


carattere all'immediata sinistra del curso- 
re. ma lo fa in modo "locale": poiché una 
linea del wp è di 80 caratteri, ma il 64 ne 
può mostrare solo 40 per volta, è bene 
muoversi solo sulla parte di riga mostrata 
al momento della correzione. 

La seconda cosa si riferisce alla corretta 
procedura da seguire per inserire delle linee 
di testo. Il tasto F7, infatti, mette una nuo- 
va linea tra due già esistenti, ma la mette 
vuota: bisogna poi usare la funzione di 
correzione, abilitata da F3, e sostituire la 
stringa nulla con la nostra nuova riga. 

Va ancora detto che ci si può trovare in 
difficoltà con un wordprocessor che non 
va a capo da solo. Chi avesse grossi proble- 




mi può inserire una semplice routine di 
segnalazione che (ad esempio) emetta un 
beep per ogni carattere dalla colonna 70 in 
poi. La parola, ora, al nostro lettore. 

Penso che ormai il wp sia uno strumento 
utile e necessario per scrivere testi. Il suo 
uso è noto: oltre ad avere le doti di una 
macchina da scrivere elettrica, con esso si 
possono correggere i testi, archiviarli su un 
supporto magnetico e naturalmente stam- 
pare un testo tutte le volte che si vuole. 

Questo wp non ha tutti i pregi di quelli in 
commercio: ma essendo scritto interamen- 
te in Basic usa poco spazio, permettendo di 
memorizzare testi fino a 30000 caratteri. 

L'uso del programma 

Appena dato il run appare lo schermo 
con in alto dei numeri indicanti la colonna 
e il cursore all'inizio di riga 0. In quel mo- 
mento siamo nel modo editor e possiamo 
cominciare a battere il nostro testo. 


IN PUT DA TAPE 
HKHJN TASTO PER CONT. " 


OUTPUT SU TAPE 
JttOHJN TASTO PER CONT. " 


•850 PRINT N : PRINTLEFT*<X*(NI ,40) : PR1NTMID*(X*<N) ,41 , 40) 

860 GOTO340 
870 REM 

880 REM SCROLLINO DEL TESTO DA DESTRA A SINISTRA DI 20 CARATTERI 

890 REM 

900 IFJ>20THENK=J-21 : QOTO930 
910 K=0 

920 I F I =60THENPRINT “ 38" LEFT * ( D* , 30 ) " M" : GOTO940 
930 PRINT"na"D*"S" 

940 IFJ=0THEN980 
950 F0RM=KT0J-1 
960 PP.INTMID*<X*<M>, 1-10,39) 

970 NEXTM 

980 PRINTRIGHT*<X*<J), 11 > ; "» 

990 GOTO350 

1000 print " rama menu' «but 

1010 PRINT" C13 CARICA TESTO M" 

1020 PRINT" C23 SALVA TESTO »" 

1030 PRINT" C33 STAMPA TESTO» " 

1040 PRINT" [41 NUOVO TESTO» " 

1050 PRINT" C5I EDITOR »" 

1060 PRINT" C6I FINE»" 

1070 GETA* 

, 1030 A=VRL<A*) IFA<1ORA>6THEN1070 
1090 0NAG0T01 120, 1260, 1370, 1480, 1530, 2380 
1100 GOTO1070 
1110 REM 

1120 PRINT'TJSMIM CARICA TESTO DA NASTRO 
1130 PRINT "PREPARARE IL NASTRO 
1140 GETA*: IFA*=""THEN1 140 
1150 INPUT” TITOLO" ;T* 

1160 OPEN1, 1,0, T* 

1170 INPUT# l.J 
1180 FORI=0TOJ-1 
1190 GETttl , A* : X*< I )=X*< I )+A* 

1200 IFAtOCHRtC 13ITHEN1 190 
1210 X*< I >=LEFT*(X*< I > , LEN(X*< I) )-l ) 

1220 NEXTI 
1230 CL0SE1 
1240 GOTO1000 
1250 REM 

1266 print" riamo» salva un testo su nastro 

1270 PRINT "PREPARARE IL NASTRO 
1280 GETA*: IFA*=""THEN1280 
1290 INPUT" TITOLO" ;T* 

1300 0PEN1, 1, 1,T* 

1310 PRINT#1, J 
1320 FORI=0TOJ-1 
1330 PRINT#1,X*<I> 

1340 NEXTI 

1350 CL0SE1 : GOTO1000 

1360 REM STAMPA DEL TESTO 

1370 PRINT"BOOOflOOfilIOOO HAI ACCESO LA STAMPANTE <S/N>" 

1380 GETA* : IFR*="S“THEN1410 
1398 IFA*="N"THEN1370 
1400 GOTO 1380 
1410 0PEN1,4,7 
1420 FORK=0TOJ 
1430 PRINT#1,X*<K> 

1440 NEXTK 
1450 CL0SE1 
1460 GOTO 1000 

1470 REM NUOVO TESTO 

1480 PRINT" « MO»CgCaaCSEI SICURO DI VOLERE CANCELLARE IL TESTO" 

1490 GETA*: IFA*=“S"THEN1520 
1500 I F A*= " N " THEN 1000 
1510 GOTO 1490 
1520 RUN 

10 J=J-l:I=0 
1540 GOTO530 
1550 REM 

1560 REM CANCELLAZIONE DI UNA RIGA 
4570 REM 

1580 IFI>0THEN350 

1590 N*="":PRINT"ICANCELLA LA RIGA 3 1"; 

1600 GETA*: IFA** 11 "THEN1600 
1610 IFA*=CHR*< 13ITHEN1670 
1620 A=VAL<A*) 

1630 I F A<0ORA>9THEN 1 600 
1640 PRINT "II" A* “3 H"i 
1650 N*=N*+R* 

1660 GOTO1600 

1670 PRINT "Il “ : N=VAL<N*> : IFN>=JTHENPRINT“ERR0RE N.RI0HE=“; <J-1) GOTO340 
1680 F0RI=NT0J-2:X*<I>=X*<I+1) NEXT 
1690 X*< J-l >=" " : J=J-2 : GOTO530 
1700 REM 

1710 REM INSERIMENTO DI UNA RIGA 
1720 REM 

1730 IFI>0THEN350 

1740 N*=" " : PRINT"IIINSERISCI IN LINEA a 
1 750 GET A* : 1 F A*= "" THEN 1 750 
1760 IFA*=CHR*< 13ITHEN1820 


132 


MCmicrocomputer n. 38 - febbraio 1985 


1770 fl=VAL<A*) 

1780 I Ffl<0ORA>9THEN 1 750 
1790 print "ir a* "3 r; 

1800 N*=N*+A$ 

1810 GOTO 1750 

1820 PRINT"II " : N=VAL<N») : IFN>=JTHENPRI NT "ERRORE N. RIGHE=" , < J-l ) GOTO340 
1830 FOR I = JT ON+ 1 STEP- 1 X$(I)=X*< 1-1 ; : NEXT X*(N)=" 11 
1840 GOTO530 


3 REM SOSTITUZIONE DI UNA STRI NCR 


ALL'INTERNO DEL TESTO 


1890 

1900 

1910 


S*=" " : N*=" “ • SS*=" " : IFI>0THEN350 
PRINT"IBOSTITUISCI IN LINER 3 S". 

GETR* : IFR*=" "THEN1900 
IFfl*=CHR*<13)THEN1970 
A-VALCA») 

I FR<0ORfl>9THEN 1 900 
PRINT"irfìS” 3 
N»=N*+A* 

GOTO 1900 

PRINT"II " N=VRL(N*1 I FN>= JTHENPR I NT " ERRORE N.RIGHE=" . < J-l i GOTO340 
I =0 : PR I NTSPC < 1 0) "Lfl STRINGR 3 . 

GETA* IFfl*=" "THEN 1990 
A=ASC<A*) 

IFfi=13THEN21 10 

I FR=20THENGOSUB2070 GOTO1990 
I FR<320R < fi> 1 27RNDR< 1 60) THEN 1 990 
IFI>79THEN1990 


; GOTO 1990 


2090 

2100 

2110 

2120 

2130 

2140 

2150 

2160 

2170 

2180 

2190 

2200 

2210 

2220 

2230 

2240 

2250 

2260 

2270 

2280 

.2290 

2300 

2310 

2320 

2330 

2340 

2350 

2360 

2370 

2380 

2390 


S*=S*+R*: 1=1+1 

PRINT"ir 

PRINT"! 

1=1-1 
S*=LEFT*(S*,I) 

RETURN 

SS*=S* ; S*=" " • 1=0 ■ PRINT"! 
GETR* IFR*=“ "THEN2120 


• PRINTSPC<10)"CON Lfl STRINGA 3 


IFA=13THEN2200 

I Ffl=20THENGOSUB2070 GOTO2120 

IFfl<32OR<fl>127RNDfi<160)THEN2120 

IFI>79THEN2120 

S*=S*+A» 1=1+1 

PRINT“H"At" 3 GOTO2120 

PRINT "Il 

FF=0 : FORI=lTOLEN<X*(N)) 

XX*=MID* <X*<N) , I . LEN<SS*) ) 

IFXX*=SS*THENGOSUB2280 

NEXTI 

IFFF=1THENJ=J-1 ■ GOTO560 

PRINT" ERRORE STRINGA NON TROVATA" 

GOTO340 

LL*=LEFT*<X*<N>, 1-1) RR*=RIGHTJ(X*<N).LEN(X*<N))-I-LEN(SS*>+1 
X*<N)=LL*+S*+RR* 

FF=1 RETURN 


EEEEE N N DDDD 


GETR*: IFA*="S"THEN2420 
I Ffì*= " N " THEN 1 080 
GOTO 2390 


SICURO DI VOLERE SPEGNERE (S/N)" 


1190 

1200 

1210 

1220 

1230 

1240 

1250 

1260 


1290 

1300 

1310 

1320 

1330 

1340 


PRINT"na»M« CARICA TESTO DA DISCO 
PRINT "PREPARARE IL DISCO 
GETRf IFA*=" "THEN1140 
INPUT" TITOLO", Ti 
0PEN2,S.2.Ti+".S,R" 

INPUT#2,J 

FORI=0TOJ-1 

GETK2, A* • Xi<I )=X*< I ) +A* 

IFAtOCHR*(13)THENl 190 

XKI )=LEFTt(Xi< I ) ,LEN(Xi( I ; )-l ) 

NEXTI 

CL0SE2 


REM 

FF:INT"^ai!l(W SALVA UN TESTO SU DISCO 
PRINT" PREPARARE IL DISCO 
GETAi : IFR$=" "THEN 1280 
INPUT" TITOLO". T* 

0PEN2.8. 2.TÌ+".S.U“ 

PRINT#2. J 

FORI=0TOJ-1 

PRINT#2.XÌ<I> 

NEXTI 




INPUT DA DISCO 
WMJN TASTO PER CONT. " 


OUTPUT SU DISCO 

««Mal" 

H«MJN TASTO PER CONT. 


COMMODORE 6 


Attraverso il tasto "«-“si passa al menu 
il quale permette di scegliere 6 procedure, 
che sono: 

1 - Carica un testo già digitato da na- 
stro 

2 - Salva il testo in memoria sul nastro 

3 - Stampa il testo su una stampante 
seriale IMPS801. GPIOOVC. ecc.] 

4 - Cancella il testo in memoria 

5 - Si ritorna al modo editor 

6 - Uscita per fine programma 

Nel modo editor ci sono altri 7 comandi 
azionati dai seguenti tasti: 

«- Si salta al menu 
inst/del Cancella il carattere precedente 
il cursore 

return Memorizza una riga 
fi Lista una riga del testo 

G Corregge una riga 

f5 Cancella una riga 

17 Inserisce una riga 

Analisi del listato 

-290 inizializzazione variabili. 

300-340 Preparazione dello schermo. 

350-510 Acquisizione dei caratteri e ri- 
conoscimento dei tasti chiave. 

520-630 Acquisizione di una riga di te- 
sto. Viene aggiornato l'indice di riga, stam- 
pa il numero della nuova riga e se necessa- 
rio effettua lo scroll. 

640-710 Cancellazione dell'ultimo ca- 
rattere digitato attraverso il tasto [del], 

720-860 Routine del lisi: visualizza una 
riga di testo su 2 righe di schermo. 

870-990 Routine che provvede a spo- 
stare la finestra visualizzata ogni volta che 
viene superata la colonna 20 o 40 o 60. 

1000-1100 Presentazione del menu e ri- 
conoscimento della scelta fatta. 

1110-1240 Caricamento di un testo da 
nastro. Viene effettuato per mezzo del pe- 
rché altrimenti non si potrebbe mettere nel 
testo 

1250-1350 Salvataggio di un testo sul 

1360-1460 Stampa del testo. 

1470-1520 Nuovo testo. 

1550-1690 Cancellazione di una riga e 
compattazione del testo. 

1700-1840 Inserimento di una riga vuo- 
ta. 

1850-2300 Routine di sostituzione. Que- 
sta routine permette di sostituire una strin- 
ga all'Interno di una riga con un’altra. Ap- 
pena pigiato il tasto [G] compare sullo 
schermo la scritta “sostituisci in linea": a 
questo punto dovremo digitare il numero 
di riga. Una volta battuto il return, se il 
numero battuto è compatibile con il nume- 
ro di righe del testo, apparirà la scritta "la 
stringa" e dovremo digitare la stringa che 
vogliamo correggere, poi apparirà la scrit- 
ta “con la stringa" e qui dovremo inserire 
la stringa corretta. Il 64 poi provvederà a 
cercare la stringa indicata e a sostituirla 
con l'altra. 


MCmicrocomputer n. 38 - febbraio 1985 


133 


sostituisci in riga I 
la stringa o 
con la stringa a 
riga I "casa" 

2310-2420 Fine programma. 

Elenco delle principali variabili 

D$ = Stringa contenente i numeri da 0 
a 9 per 4 volle. 

XS = Vettore alfanumerico che contie- 
ne il testo. 

BS = Stringa contenente 80 blanck. 

J = Indice di riga del testo. 

I = Indice di colonna del cursore. 

A = Codice del carattere digitato. 

AS = Carattere digitato. 


I scriviamo in verticale 

di Vittorio Cian i - Firenze 
Non c'è dubbio che il Basic sia lento; in 
alcuni casi la lentezza fa davvero perdere la 
pazienza: cosi, allo scopo di velocizzare i 
miei programmi, ho deciso di imparare il 
linguaggio macchina del 64. Dopo aver 
letto la serie di articoli che MC ha dedicato 
all* Assembler (a firma di Valter Di Dio. 
ndr) mi sono procurato un monitor e ho 
realizzato questo programma, che consen- 
te di scrivere verticalmente sia in modo 
ascendente che discendente. Anche se il 
nome del programma è di per sé sufficiente 
ad illustrarne le funzioni, non sarà male 
spendere qualche parola in più sulle moda- 
lità d'uso. 

Se si vuol scrivere in senso discendente si 
dovrà dare il Run al programma, quindi 
digitare 

POKE 2.0: SYS 49152 

mentre se si vuol scrivere in senso contrario 
bisognerà digitare 
POKE 2.1 SYS 49152 

In questo modo saranno disponibili sia 
il set di maiuscole normali che quello ruo- 
tato nel senso scelto. Va notato che il nuo- 
vo set viene memorizzalo in sostituzione 
dei caratteri in reverse. quindi per utilizzar- 
lo bisognerà prima impostare il Reverse 
On. che si abilita premendo contempora- 
neamente il tasto CTRL e il 9 (per disabili- 
tare premere CTRL e 0). 

Per tornare al solito set di caratteri in 
campo inverso, oltre all'usuale Run 
Stop Rcslore. potrete usare una 
POKE 53272. 21 

Per ritornare ai caratteri in Ram. ovvero 
a quelli ruotati, o rifate la 
SYS 49152 
oppure digitate 

POKE 53272. { PEEK(53272) AND240) + 12 
Naturalmente a questo punto il pro- 
gramma Basic non serve più. perché la rou- 
tine in LIVI è già caricata e non si cancella 
né con il Run Stop: Restore. né con la SYS 
64738. e neppure viene disturbalo dai pro- 
ci.,,, un, in Basic. 


0 REM limi un 

1 REM t ROTAZIONE DI 90 GR « 

2 REM « DI 128 CARATTERI « 

3 REM » PER COMMODORE 64 « 

4 REM I DI VITTORIO CIACCI « 

8 rem aiittttiiKtmittttii 

9 : 

10 DATA1S9. 48, 133,32. 133.36,169.234,43. 14,220, 141 . 14, 220. 169, 231 . 37, 1 

1 1 DATA133, 1.160,0.132.230. 132.232. 169.208. 133. 231 . 169.48. 133,233, 177,230 

12 DATA143. 232. 200. 208.249. 230. 231. 230, 233. 163, 233-, 201, 32. 208, 239. 169. 0.143 

13 DATA232. 200. 208, 231, 230. 233. 166, 233. 224. 36. 208. 243, 169, 48, 141, 134, 192. 141 

14 DATAI 61 ,192,141,164,192,169.52.141.170,192,141,173,192. 169,0. 197,2,208 
13 DAT AZI .141,138.192.169,128,141.138.192,169.74,141.140,192,169,30.141,132 

16 DATA192, 76, 132. 192, 169. 127, 141,138. 192, 169.1,141. 138,192, 169, 10, 141,140 

17 DATA192, 169,94. 141 , 152. 192. 162.0, 134,249.216, 169, 126.72.74,208.232. 104 

18 DATAI 60,0, 133,2, 169.0, 133,248.30,0,48, 144. 17, 169.0. 123,0. 4E 

19 DATA! 37. 0.48, 163. 2, 24, 121 , 0. 32. 133.0.32.200,230.248, 163.248,201 

20 DATAB.208.223. 138,24. 103,8, 170.192,0.208.212.230.249,166.249,224,8 

21 DATA208. 199.238, 134, 192,238, 161 . 192,238, 164. 192.238.170, 192. 23B. 173, 192. 173 

22 DATAI 73 . 1 92 , 20 1 , 36 , 208 . 1 66 , 1 62 . 8 . 1 69 . 233 , 1 37 , 233 , 32 . 202 . 20B , 230 . 1 69 . 4 

23 DATA 3.1,133.1.169.1.13,14,220,141,14,220.169,240,43,24,208.24 

24 DATA103. 12, 141.24.208.96 

23 PRINTCHRt(147)TA8(212, "LETTURA DEI DATA": Xl=49132: X2»36931 

26 FORI=0TO237:REAOA: POKEX 1 + 1 .A: X=X+A:NEXT j IFXOXZTHENPRINT'DATA ERROR' :END 

27 PRIHTCHR* (147) "DIGITARE POKE2.0 PER RUOTARE I CARATTERI A DESTRA DI 90 GRADI' 

28 PRINT''DI3ITARE P0KE2. 1 PER RUOTARE I CARATTERIA SINISTRA DI 90 GRADI 

29 PRINT-flUINDI LANCIARE IL PROGRAMMA (SVS49132, ' 

30 PRINT' I CARATTERI RUOTATI SOSTITUISCONO NELLA RAM QUELLI IN REVERSE" 


Helicopt 

di Roberto Lombardelli - Alieno t PC I 
Questo lettore della provincia di Piacen- 
za ci propone un gioco dalle caratteristiche 
assai semplici, ma dalla veste grafica cura- 
tissima. Siete in una caverna, e dovete sal- 
vare un certo numero di omini disseminati 
nell'antro (per salvarli basta poggiarvisi 
sopra). Ci sono anche delle basi di riforni- 


mento, che incrementano il vostro punteg- 
gio. togliendovi però un po' di tempo. Ave- 
te a disposizione una sola vita, e per di più 
un tempo assai limitato, memorizzato nel- 
la variabile TE in linea 200. Volete un con- 
siglio da amico? Per i primi tempi (due o 
trecento anni) aumentate quel valore di 
almeno 10 volte. 

Un piccolo appunto riguarda la mano- 
vrabilità dei comandi, fissali nelle lettere S 


2 REM »♦♦♦♦♦♦♦♦♦♦♦♦»♦*♦****** 

3 REM * HELICOPT DI ♦ 

4 REM * LOMBARDELLI ROBERTO * 

5 REM » VIA EINAUDI, 4 ♦ 

6 REM * 29010 ALSENO 'PC) * 

7 REM 

8 QOSUB 40000 

9 TE=200 

10 61=54272 FL=61 FH=SI*1 TL=SI+2 TH=6!*3 W=61*4 r 1=61*5 HL=6I*ó L1=SI*24 

11 DF=5 

15 REM CARATTERI RIDEFIMITI 

20 FORT=12283TO12288*<3*10>-1 READS POI ET A IIE..1 

36 DATA255. 255, 243, 113.97,97.33 32,56 li* 146 124,36,40,40.108 

40 DATA255* 129 66, 60. 60, 6o 129-255.24 . 126, 126 126 • 126 24 12c 102 

50 BATA15.64.255 79. 3.0,0,3.254,64.252.250-249.255. 72-255. 7. 31, 7, 1 , 1 . 1 .255 2 

68 DATA0. 0,0, 0.0, 128.255,64 

70 DAT A255 , 255 ,255.255,255, 255 . 255 . 255 , 32 , 33 97,97 113 24 J 255 .-,5 
80 FORT=1223S-K3*32,T01228È*‘S»3i -1 READA POI' ET ■ A MELI 

90 DATA0. 0,0, 0,0, 0,0,0 

91 P0KE532S11 FRI NT "Ila" P0KE53281 , 0 POKE53280.0 
L00 P0KE53272 , PEEK ' 53272J0R12 

ne PRINT"a»^HHHeeeel>ltì!eee@e@eH@li!ee8lleeeel^!eeeeeel3HHHH' , , 

120 PRINT"HHHH)gggggggggggg|-IPkWKi£::liggggVPgggggf I3HHH " . 

1 30 FRlt)T"HMIi!4|»»»»»»gW»| l im»»|,,.: VIMIMMtiMftliw , 

14Ù i-v ;m »»»BiB »»Ii.b »»»»»»»»! 

150 PR I NT ' )»»!", 
160 FRINÌ l •»£ li", 

170 PRINT" ì 1 1 »Mi£ »M»li»iHHH" - 

180 PPINT"iBEBBEB£E£BBB£EE;«eHIBBBai»Miff:«*ii3.II 1 1 IHIM&H" - 
190 PRINT 

200 PR I NT " it£ •»(>£ J00I " - 

21Ù PRINT" H«»»M>l-IB(E:«»BÌB'i»»Ì»*»»»»»l600 9»»l!HHHI»»gg»il" 


220 PRINT"SiB£;lI »gg| IIiiE . 

2 50 PR I : IT " t " - 


240 PRINT 

250 PRINT "HiKMgiHUgHI lii»g»M»ii»P0IUHi - 

260 PRINT"HHIIHÌimM2HHIIgMMggMMIHHHTI»UI 1 1 1 1 IH" , 

27© PRINT"HHHSÌBBBBEaEWWSHHIi»Ì**»g»WlHH®G@0>«»ei!!tì00H"; 

236 PRINT "HHHHHHHH1 . 

290 PR I NT " HHH0®@HHH 1 1 (PUH I ilMtilI HHHHiiBBBBBBEBBB®ÌH ' • 

300 PRINT "HHeiMUaHHHHWIHHHI 1 1 gftll i i; II " , 

310 FRIMT"H@M»»*l3@@HMHaGHHHMHHHHMIiBEl»KBB££a»MiB£fi I" ■ 
320 PRINT"Hli»»»W»»»ISIi»0)i»|8HHWH@iilBBB£BB.*M-tti»»»»HaH" - 
339 PRINT "HI IIWttLiE )»»).4li - 

349 PRINT"HHHil»»Ì»»M»»»g»»»»»»»*>KiB:BBB£B.»iHliM9:4- JM1H" - 
356 PR I NT " HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHa" 


134 


MCmicrocomputer n, 38 - febbraio 1985 


0 PClkEKl . 15 POKEHL-U 


jKEFL.200 POKEW 123 


430 IFP=33THENSF- 40 
::: :r: ìóthensf , *40 
450 IFP=64THDISP=0 

500 IFSPO0THEN520 

501 POP ELI • 15 POt ELI. O 

' 2 TE=TE : ir TE --OTHEN3O0OO 
510 0010400 
520 Fl-FEEMPG+SP. 


.. i-THEIlGOT 05000 


400O REM E: 

5000 IFF 1- 

5001 FOKEW.0 POKEk: 


12 POKEPG- SP- 
IONE 

. -0ÙRP2= 1 ORF 2=7 Il tEM 1 0000 


POkELl.O GOTO40O 


3KEPG+SP.5 

5G10 FORVO=15TO0STEP . . 

502O FOt. ELI . VO FOKELI . 15 POI.EHL 
1 ■ I . 

105 «EH f iilE uioco 


POKEPG. 32 POKEPG- 1 , 32 

40 PUKEFL 200 POKEW. 1 


5O60 PPIIIT ' BUtìlWFOUF OC ORE 1 
50 FO FPIIiÉ ' *TTF V «GB III • V. 'IL >• 

5080 CÙ=C0*1 IFC03 15THEiIló=1 

5081 POKE53281.CO F0KE53281 .00-1 uETFt* IFFI»="' 


5100 P0KE532S1.1 POEE532S0.1 FRI» 
1 000Ò I FP 1 =6At IDP2=?THENI5000 
4 PG=PGr£P 

" "OKEPG -5 PUkEPG-1.4 POKEPG- 


■■.1»W«»»M300 


“ Et® 


10805 

10010 FGi.EW.0 POKEH.I 
1OO20 POI D I lo POKELi -3 POI.EHL, o i ut , 
'■ ~ ' "0 ilE,:r POKEW, 0 POI. El J 


.OMO 5C=SC*it 
1O05O GQT 054C 

-&=PG+SP POI.EF'G.5 FOI.EP&- 


.32 POKEPG-SP-1,32 

.40 PCrt.EFL.200 POKEW. 1 

IFND=0FTHtM20000 

POKEPG- SP , 32 POKEPG-SP-1,32 


15001 T 

15O10 POKEW, 0 POKEKI.0 

‘ ILI. 10 POKELI. 3 POKEHL.O POKEFH , 40 P 
15030 ruRr=lTO50M HE..Ì Oi.Eii ... POIEKI.0 
" U 5C-Ì-.-150 GOTO540 
•J REM FINE SCHERMO' 

O P0KE53272.PEEK'53272'AND21 PPlHT'i 

0 FFIui COMPLETE!' THI 5 WBVE.TRV THE NEXT 

20020 HU=B TE-200 G0T031 
20300 FEM TEMPO SCADUTO 

50000 PCI E5.2F2-I L_> 5 .n.lLl F«lHT~3IMMn«M 

E R '• 

30010 F OR T - 1 T O250Ó ME. T ijTQS050 
,3000 Fi.:: 5101.B 

» 

:*»*n*n 


200 POKEW. 123 


" FC'PT = 1 T O3O0O HE..T DF=DF+3 


S'ina mia ■ 


s;9 Il* 3 l premi- 
si» :.i uio uh 

a». •' iniiiPM tasto 

ai» - DESTRA' 

H« = 'IHDI4OI40 

'••MI 

iOIvii. i unir.. 1', UHM j,hn:l 

IL L. . IERI .1. U LIMI IRTO. 


Questo programma è disponibile su 
cassetta e disco presso la redazione. Ve- 
dere l’elenco dei programmi disponibili 
e le istruzioni per l’acquisto a pag. 1 53 


cowMOTone » 


(sinistra). D (destra), I (sopra) ed M (sot- 
to): non sono prontissimi, e talvolta rad- 
doppiano il colpo. 

I Autorun per disco 

di Luciano Usuelli- Varese 
Come è risaputo, premendo contempo- 
raneamente i due tasti Run e Shift i compu- 
ter Commodore consentono di avere l'au- 
torun del programma. Tale combinazione 
però agisce solo sulla cassetta. Con il disco 
è comunque possibile avere una funzione 
analoga, usando la routine MENU, realiz- 
zata dal sig. Usuelli. Con MENU si ottiene 
la visualizzazione su schermo dei program- 
mi giacenti sul disco, e il successivo carica- 
mento con autorun di uno di questi pro- 
grammi. L'unica limitazione è nei nomi dei 
programmi stessi, che devono essere me- 
morizzati nel directory utilizzando una so- 
la lettera: A.B.C.... 

Diamo ora una scorsa al listato. In linea 
100 e 1080 vengono cambiati i colori della 
scritta: nel secondo caso ciò serve per ma- 
scherare le scritte SEARCHING e gli altri 


30 REM 

SI REM ** BUTORUN DB DISCO «♦ 

82 REM *♦ PER /IL E 64 ♦» 

Si REM »♦ DI LUCIANO USUELLI ** 

84 REM ***:*:♦*♦***♦***♦♦♦*♦♦♦♦♦.♦♦ 

85 

100 PRINT"^' PRINTCHR*' 5 
110 PRINT" MENU*»»" 

120 PRINT "==»===== ========= " 

130 PRINT "PROGRAMMA ALFA 'A.' 

140 PRINT "PROGRAMMA BETA >B' 

ISO PRINT" PROGRAMMA GAMMA '(.> 

160 PRINT "PROGRAMMA DELTA • D ' 

170 PRINT "PROGRAMMA ETÀ <Ei 
IOOO GET A* IF R*=" "THEN 1000 
1020 IFASC'At ,<65 OR ASC > A* > 563THEN 1 000 
1030 POKE 634. ASC' AJ ■ 

1040 RESTORE 

1050 FORA=0TO2 READB P0KE631+A.B HE 
106O FORA=0TO5 READB P0KE635+ A , B • NE 
1080 PRINT CHRJ131 i 
1030 POKE 138.10 
1100 END 

1200 DATA 76.111.34,34,44.56.58 131 


messaggi del computer, che verranno scrit- 
te nel colore dello sfondo; il primo coman- 
do. invece, ripristina un colore visibile. Il 
menu viene generato con le linee 1 1 0 - 170. 

I n linea 1 000 si aspetta che venga premu- 
to un tasto, poi si verifica che corrisponda 
ad una delle lettere possibili (di codice 
ASCII da 65 in poi). Le linee 1030 e 1040 
approntano il bulTer di tastiera (locazioni 
Ram da 631 a 640) al caricamento dell'i- 
struzione diretta (scitta in modo abbrevia- 
to) 

Lr "< lettera scelta >',8:CHR$(131) [return) 
che quindi caricherà il nuovo programma. 
Il cuore delia routine è il CHRS( 13 1 ) stam- 
pato dopo l'istruzione di caricamento: è lui 
che dà il via all’autorun. Tra l'altro questo 
comando è lo stesso che viene abilitalo 
dalla pressione dei tasti Run + Shift. MC 


MCmicrocomputer n. 38 - febbraio 1985 


135 


cura di Maurizio Bergami 



Prospettiva 

I di Carlo e Silvio Ziccardi - Roma 
Descrizione e spiegazioni per l’uso 

Il programma permette di disegnare sul- 
lo schermo (ed eventualmente trasferire su 
carta per mezzo della stampante) oggetti 
tridimensionali in prospettiva, posti in 
qualsiasi posizione rispetto ai tre assi di 
riferimento. 

Per disegnare la prospettiva di un ogget- 
to occorre seguire, in genere, la seguente 
procedura: 

I ) Posizionare l'oggetto in un sistema di 
assi cartesiani ed assegnare ad ogni vertice 
le coordinate rispetto alla terna di assi. 

2) Numerare i vertici dell'oggetto da di- 
segnare. 


3) Assegnare i collegamenti tra i vari 
vertici del solido (cioè il modo in cui i 
vertici sono uniti tra loro: per esempio il 
nodo 2 sarà unito col nodo 3 e col nodo 7 

4) Assegnare la rotazione che si vuole 
che il solido assuma rispetto agli assi (asse- 
gnando il valore di ogni rotazione intorno 
al suo asse). 

5) Definire la posizione del punto di vi- 
sta. ossia del punto da cui si osserva l'og- 
getto (il punto di vista è definito da tre 
coordinate). 

A questo punto il computer ha tutti i 
dati per disegnare. In particolare il pro- 
gramma in Basic seguirà le seguenti proce- 
dure. Una volta premuto il tasto RUN il 
calcolatore dimensionerà le matrici che 


dovranno contenere le strutture di dati: a 
questo scopo ci verrà richiesto il numero di 
nodi che dovremo immettere in memoria 
(si noti che conviene prevedere un numero 
più alto, per poter aggiungere un altro og- 
getto senza dover reimmettere tutti i dati 
precedenti). 

Subito dopo il programma ci sottoporrà 
un menu di controllo comprendente: 
Ingresso dati 
Stampa dati 
Correzione dati 
Disegno 

Ecco l'analisi delle opzioni previste: 

Ingresso dati 

Non si può disegnare se prima non si 
immettono i dati relativi al solido da dise- 


1 REM *********************** 
5 REM * * 

3 REM * PROSPETT IUA * 

4. REM * * 

5 REM *********************** 

6 REM 

8 BORDER 1: PAPER 1: INK 7: C 
L5 : POKE 23658 , 8 

10 DRTR CZ,-SZ,0,SZ,CZ,0 
12 DATA 0 , CX , -SX , 0 , SX , CX 
14- DATA cy ,0, -sy ,sy , 0 , cy 

15 PRINT " STUDIO PROSPE 

TTIUE 

16 BEEP 0.7,0: INPUT "Numero n 
odi k. 

18 LET p V = 1 : LET up=0: LET nn 


20 DIM t 
b (3,4) : C 
DIM 9 (2,C 

30 BEEP G 

31 INPUT 


40 IF ai = 
50 IF a $s 
60 IF a $ = 
65 IF at = 
70 GO TO 

89 REM ET 

90 BEEP . 

91 INPUT 


3 ; z$ 

100 IF Z*» 
110 IF Z*= 

120 IF Z i = 

121 GO TO 


.1,0: CLS 
"Ingresso dati 
Correzione dati 
Stampa dati 
Disegno 


"S" 


THEN GO TO 370 
ThEN GO TO 90 
TMEN GO TO 400 
THEN GO TO 3260 


CLS m 

'Coordinate nodi 
Unione nodi 
Controllo IWftM 

•CN" TMEN GO TO 130 
'UN" THEN GO TO 240 
" TMEN GO TO 30 


129 REM I 

130 CLS 

131 PRINT AT 0,2; "H 
■ ’ ; "1B= " ; up; AT 0,2' 

2 PRINT AT 1,8; “C' 


COORDINATE NO 

DI" 

13 

IN+ 

140 INPUT "X » " ; X * 

141 IF CODE X $ < 45 OR CODE xt>57 
THEN GO TO 30 

150 INPUT "Y a ” ; y * 

151 IF CODE y $ <45 OR CODE y*>57 
THEN GO TO 30 

160 INPUT "Z = " ; Z $ 

161 IF CODE Zi <45 OR CODE Z$>57 
THEN GO TO 30 

170 LET t (pv , 1 ) =*JAL X $ : LET t (p 
V,2)aUAL y$: LET tipv,3)sUAL Z$: 
LET t (pv ,4) =1 

181 PRINT TAB 2 ;pv;TAB 8 ;t(pv,l 
) ; T AB 16; t (pv , 2 ) ; TAB 24;t(pv,3) 
190 IF pv>up THEN LET upspv 
195 IF p V = K THEN GO TO 90 
200 LET pvspv + l: IF t(PV,4)=l T 
HEN GO TO 200 
210 LET nn 3 

219 REM I 

13 

220 GO TO 131 

240 CLS : PRINT AT 0,7; "COLLEGA 
MENTO NODI" 

241 PRINT AT 2,3; "NODO PRINC."; 
AT 2, 16; "NODO SECOND." 

250 BEEP 0.1,0: INPUT "Nodo pri 
ncipa les"; li 

251 IF CODE li <48 OR CODE li >57 
THEN GO TO 30 

252 BEEP 0 . 1 , 0 : INPUT "Nodo con 

nesso 3 " ; m t : PRINT " "jlt," 


136 


MCmicrocomputer n. 38 - febbraio 1985 


25Ò IF CODE m $ <48 OR CODE m*>57 
THEN GO TO 30 

254 LET l 1=UAL 1$: LET 12 sURL m 

*260 IF t (11,4) =0 THEN BEEP 0.1, 
0: print 81 ; "il nodo ";ll;" non 
e' stato assegnato": PAUSE 80: G 
0 TO 250 

261 IF t (12,4) =0 THEN BEEP 0.1, 
0 : print 81 ; "il nodo " ; 12;" non 
e' stato assegnato": PAUSE 80: G 

0 TO 250 

265 GO SUB 3000 

266 IF fisi THEN GO TO 250 
270 FOR i =1 TO 3 

280 IF C ( 1 1 , i ) =0 THEN LET CUI, 

1 ) sl2: GO TO 360 
300 NEXT 


' ^ 60 * 


-R J 

320 IF C ( . _ 
j) =11: GO TO 

340 NEXT 

350 PRINT 
0 NUMERO 
TI NODI: 

, ”, 12: PAUSE 100 

360 GO T O 250 

369 REM “■ ™ 

370 CLS 

371 BEEP 0 
COORDINATE 
UNIONE 


) =0 THEN LET C ( 12, 


ASSEGNARE UN NUOU 
AD UNO DEI SEGUEN 
il; " 

GO TO 90 


374 IF US= 


"ROT 


"ROTAZION 

INPUT "Angolo d 
” " ; rx 

; rx 

NPUT "Angolo d 
"; ry 

INPUt "Angolo d 


,0: INPUT "MATRICE 

linai MATRICE 

l]!W | it CONTROLL 

... „ THEN GO TO 30 

375 IF w $ = "MC" THEN GO SUB 3140 

380 IF U $s"MU" THEN GO SUB 3090 

381 GO TO 371 

382 PRINT 8 1; "B 

pause i: paus 

385 

395 REM 
400 CLS 

402 PRINT "ANGOLI DI" 

E": PRINT 
405 BEEP 0. 
i rotazione 
415 PRINT 
420 BEEP 0. 
i rotazione 
425 PRINT "R5 
430 BEEP 0. ' 

i rotazione 

435 PRINT "ROT Z = ";rz 
440 DIM V ( U p i 3 ) : DIM S (3) : DIM 
r (3) : GO SUB 1000 
445 FOR K s 1 TO up 
460 GO SUB 1135 

465 FOR isl TO 3 

466 LET V (k , i ) =S (i ) 

467 NEXT i 
470 NEXT k 

490 PRINT : PRINT "POSIZIONE DE 
L PUNTO DI UISTA" : PRINT 

500 BEEP 0.1,0: INPUT "Distanza 
= " ; d : BEEP 0.1,0: INPUT "Spost 

amento s -;f : beep 0 . 1 , 0 : input 
"A ltezza = ";h 

501 CLS : PRINT "DISTANZA = 

" ; d : PRINT "SPOSTAMENTO = ",f: P 
RINT "ALTEZZA = “;h 

502 BEEP 0.1,0: INPUT "UUOi diS 

egnare ? ”;b$ 

503 IF B*s"S" THEN GO TO 508 

504 IF B$ < > "N" THEN GO TO 502 

505 GO TO 30 
508 CLS 

510 LET p s f -d *TAN CPI/6) 

520 LET ts2*d*TAN (PI/6) : LET h 
l=175/255*t: LET r=hl/2-h 


525 FOR n =1 TO up 

530 IF t (n , 4) =0 THEN GO TO 790 

534 LET n l=n 

537 GO SUB 1490 

540 FOR i =1 TO 3 

550 LET b (i , 1) =SS 

560 NEXT i 

570 FOR i si TO 3 

580 LET b (i ,2) stt 

590 NEXT i 

600 LET tls0 

610 IF (NOT (SS > s0 AND SS<=255) 
) OR (NOT (tt>s0 RND tt<=175)) T 
HEN LET tisi 
620 FOR k si TO 3 

630 IF C(n,k)=0 THEN LET b(k,3) 
= - 1 : GO TO 730 
640 LET nlsc (n , k) 

650 GO SUB 1490 
660 LET 1 2 =0 

670 IF (NOT ( S S > =0 AND SS<s2S5) 

) OR (NOT (tt>s0 AND tt<sl75)) T 
HEN LET t2=l 
680 LET b (k ,3) sss 
690 LET b (k ,4) stt 

700 IF tl+t2>0 THEN GO SUB 1540 
705 IF t l+t2=l THEN GO SUB 1590 
: GO TO 730 

710 IF tls0 AND t2s0 THEN GO TO 
730 

720 GO SUB 1830 

730 NEXT k 

740 FOR k=l TO 3 

750 IF b (k ,3) <0 THEN GO TO 770 

760 PLOT INT b ( k , 1) , INT b(k,2): 

DRAU INT b ( k , 3) -INT b(k,l),INT 



1035 FOR i si TO 2 
1040 FOR jsl TO 3 
1045 READ d (i , j) 

1050 NEXT j : NEXT i 

1055 LET cysCOS ry : LET sysSIN r 


1075 NEXT „ . 

1080 RETURN 
1135 IF r X < >0 THEN GO TO 11S0 
1140 FOR isl TO 3 
1145 LET S(i)st(k,i): NEXT i: 
TO 1130 

1150 FOR jsl TO 2 
1155 LET S ( j) =0 
1160 FOR n s i Tu 3 


MCmicrocomputer n. 38 - febbraio 1985 


137 


) : LET S (1) = t ik , 1) 

1180 IF f y < > 0 THEN GO TG 1195 
1185 FOR i =1 TO 3 

1190 LET rii)=S(i): NEXT i : GO T 
0 1230 

1195 FOR J al TO 2 

1200 LET f ( j) =0 

1205 FOR n=l TO 3 

1210 LET r ( j) = r ( j) +s in) *g ( j ,n) 

1215 NEXT n: NEXT j 

1220 LET r (3) =f (2) 

1225 LET r (2) =S (2) 

1230 IF r Z < > 0 THEN GO TO 1245 
1235 FOR i=l TO 3 

1240 LET S (i ) sr (i ) : NEXT i : GO T 
0 1275 

1245 FOR j=l TO 2 

1250 LET S ( j) =0 

1255 FOR n=l TO 3 

1260 let s ( j) =s ( j) +r (n) *a ( j ,n) 

1265 NEXT n : NEXT j 
1270 LET S (3) =r (3) 

1275 RETURN 

1490 LET wi = f-< if-v (ni, li ) /(v (ni 
, 2 ) +d ) *d ) 

1500 LET SS= (Wl-P) *255/t 

1510 LET M)2= (V in 1,3) -h) / Cd+V (ni, 

2) ) *d+h 

1520 LET tt= iw2 + M *175/hl 
1530 RETURN 

1540 LET Xl = bU,l): LET yl=b(k,2 

) 

1550 LET X 2 = b ( k , 3 ) : LET y2=bik,4 

1560 DEF FN x <y ) = iy -y 1) * (X2-X 1) / 
iy2-y 1) +x 1 

1570 DEF FN y (x ) = ix -x 1) * iy2-y 1) / 
(x 2 -xl) +y 1 
1580 RETURN 

1590 RESTORE 810; IF RBS <y2-yl) 

> =RBS (X2-XD/255 TNEN GO TO 163 
0 

1600 LET y ll=y2- ty2-y 1) /2 
1610 IF i X 1 < 0 RND X2>0) OR (X2<0 
RND Xl>0) THEN LET Xll=0: GO TO 
1800 

1620 LET X 11=255: GO TO 1800 
1630 IF RBS (X2-X1) >=RB5 Cy2-yl) 
/ 175 THEN GO TO 1660 
1640 LET X11=X2- <X2-Xl) /2 
1650 IF C y 1 < 0 HND y 2 >0) OR iy2<0 
RND y 1 >0) THEN LET yll=0: GO TO 
1300 

1655 LET y 11=175: GO TO 13O0 
1660 FOR i=l TO 2 
1670 RERD y 
1680 LET X 1 1 =FN X iy) 

1690 IF X 1 1 < 0 OR X 11 >255 THEN GO 
TO 1710 

1700 IF CXKXll RND X 11 <X2) OR ( 

X 2 < X 1 1 RND X 1 1 < X 1 ) THEN LET yll = 

y ; GO TO 1790 

1710 NEXT i 

1720 FOR i=l TO 2 

1730 RERD X 

1740 LET y 11=FN y(X) 

1750 IF yllv* OR y 11 >175 THEN GO 
TO 1770 

1760 IF iyl<yll RND yll<y2) OR t 
y2<yll RND yll(yl) THEN LET xll = 
X: GO TO 1790 
1770 NEXT i 

1775 LET b(k,3)=-l: RE5T0RE 810: 
RETURN 

1780 print "Errore in intersezio 
ni 1": STOP 
1790 RESTORE 810 

1800 IF t 1 =0 THEN LET b(k,3)=Xll 
: LET b ( k ,4) =y 11: GO TO 1820 


1810 LET b(k,l)=Xll: LET bik,2) = 
y 11 

1820 RETURN 

1830 RESTORE 810: LET 4=0 
1840 DIM X (2) : DIM y (2) 

1850 IF RBS (y2-yl) > =RBS (X2-X1) 
/255 THEN GO TO 1900 
1860 LET y (1) =y2 - iy2-y 1) /2 : LET 
y (2) =y ( 1 ) 

1870 IF y il) < 0 OR y ( 1) > 175 THEN 
LET b ( k , 3) = -1 : RETURN 
1880 IF 1x1(0 RND X2 <0) OR (Xl>2 
55 RND X2 >255) THEN LET b(k,3)=- 
1: RETURN 

1890 LET X ( 1 ) =0 : LET Xi2)=255: G 
0 TO 2130 

1900 IF RBS (X2-X1) > =RBS (y2-yl) 
/ 175 THEN GO TO 1950 
1910 LET X (1) =X2- (X2-X1) /2: LET 
X (2) =X (1) 

1920 IF X (1) <0 OR X (1) >255 THEN 
LET bik,3)=-l: RETURN 
1930 IF (yl<0 RND y2<0) OR (yl>l 
75 RND y2 > 175) THEN LET b(k,3)=- 
1 : RETURN 

1940 LET y(l)=0: LET y(2)=175: G 
0 TO 2130 
1950 FOR i =1 TO 2 
1960 RERD y 


LET X ( j ) =X 1 1 ; LET y (j ) =y 
TO 2010 

2000 LET b ( k , 3) =-l : RESTORE 810 : 
RETURN 

2010 IF 4=2 THEN GO TO 2120 

2020 NEXT i 

2030 FOR i =1 TO 2 

2040 RERD X 

2050 LET y 11=FN y (X) 

2060 IF y 1 1 < 0 OR y 11 >175 THEN GO 
TO 2100 
3070 IF C 

y 11 > y 2 RND y 1_ 

1: LET X«j)=X: LET y(j)=yll: GO 
TO 2090 

2080 LET b ( k , 3) s-1 : RESTORE 810: 
RETURN 

2090 IF J=2 THEN GO TO 2120 
2100 NEXT i 

2110 LET b ( k , 3) = - 1 : RESTORE 810 : 
RETURN 

2120 RESTORE 810 

2130 IF (X 1 >X2 RND x(l)>X(2)> OR 
(X 1 <X2 RND X (1) <X (2) ) THEN GO T 
0 2160 

2140 LET X3=X (1) : LET Xtl)=X(2): 
LET X (2) =X3 

2150 LET y3=y il) : LET y(l)=y(2): 
LET y (2) =y3 

2160 LET b ik , 1) =X (1) : LET b(k,2) 

=y il) 

2170 LET b ( k , 3) =X (2) : LET b(k,4) 

=y ( 2 ) 

2180 RETURN 
3000 LET f l =0 
3005 FOR i =1 TO 3 

3010 IF C(ll,i)sl2 THEN GO TO 30 
60 

3020 NEXT i 

3030 FOR j=l TO 3 

3040 IF cU2,j)=U THEN GO TO 30 

60 

3050 NEXT J : GO TO 3080 
3060 BEEP 0.1,0: PRINT ttlj"l8 CO 
nnessione " ; 1 1; " ; 12 ' "e ' già st 
ala assegnata": PRUSE 80 


138 


MCmìcrocomputer n. 38 - febbraio 1985 


3070 LET 
30S0 RETU RN 
3039 REM 
3090 PRINT 
N IONE " 

3095 PRINT RT 2,0; "nodo p f " ; RT 2 
,9;"nodo cn";RT 2,l7;"nodo cn";R 
T 2,25; "nodo cn" : PRINT 
3100 FOR i =1 TQ up 
3110 PRINT TRB 3; i ; TRB ll;c(i,l) 

. T RB 19; C (i ,2) ,TAB 27;cii,3) 

3114 IF INKEY $ = " S " TMEN PAUSE 1: 
PRUSE 0 
3120 NEXT i 
3130 RETU RN 

3139 REM Z 

3140 PRINT 
INRTE" : PRINT 

3145 PRINT RT 1,0;"C";RT 1,5;" 

; RT 1,13; "y " ; RT l,2l;"z";RT i,*v 

; " 1 4 ” 

3149 PRINT 

3150 FOR i=l TO Up 

3160 PRINT TRB 0;i;TAB 5; t Ci , 1) ; 
TRB 13; t Ci ,2) ; TRB 21; t C i , 3) ; TRB 
30; t Ci ,4) 

3165 IF INKEY $ = "S" THEN PAUSE 1: 


PRUSE _ 
3170 NEXT 
3130 RETU RN 

3259 REM □ 

3260 BEEP 
ne 


; t* 


i 


correzi_ 
Coordin 
un ione 
Contro i 1 


3270 IF t $ = " CN THEN GO TO 3310 
3280 IF t $ = "UN" THEN GO TO 3440 
3290 IF t$="" THEN GO TO 30 
3300 GO TO 3260 

3310 BEEP 0.1,0. INPUT "Nodo da 
correggere o CAn ce l la re?" ; r $ 

3311 IF r S = "CO" THEN GO TO 3315 

3312 IF r*="Cfì" THEN GO TO 3400 

3313 IF r*="" THEN GO TO 30 

3314 GO TO 3310 

3315 BEEP 0.1,0: input "Numero d 
et nodo da correggere? ";u* 

3316 IF CODE u$<48 OR CODE U*>57 
THEN GO TO 3260 

3317 LET u=URL U* 

3318 IF t (u , 4) < > 1 THEN PRINT «1; 
"il nodo ";u;" non e' assegnato" 
: 60 TO 3315 

3320 CLS . PRINT "CORREZIONE COO 
RD INRTE NODO ";u 

3330 BEEP 0.1,0: INPUT "X a ";t( 


U , 1) 

3340 BEEP 0.1,0 
U ,2) 

3350 BEEP 0.1,0 
,3) 


INPUT "Y = 
INPUT "Z = 


t C 
; TRB 


3370 PRINT : PRINT TRB 0; 

5 ; "x " ; TRB 15; "y " ; TRB 25, 

INT 

3380 PRINT TRB 0,u;TAB 5;t(U,l)j 
TRB 15; t Cu ,2) ;TAB 25; t Cu, 3) 

3390 GO TO 3315 

3400 BEEP 0.1,0: input "Numero d 
et nodo da cancellare? ";q* 

3401 IF CODE q$<48 OR CODE q$>57 
THEN GO TO 3260 

3402 LET nc=URL q* 

3404 FOR i=l TO up 

3405 FOR j=l TO 3 

3406 IF C(i,j)=nC THEN LET C(i,j 

: =0 

3407 NEXT j : NEXT i 
3410 CLS : LET t(nc,4)=0 

3415 LET nn=nn-l: IF nc<pv THEN 
LET PV =n C 

3420 BEEP 0.1.0: PRINT 01; "NODO 
CANCELLATO = ";nC: PRUSE 1 PRUS 
E 80 

3430 GO TO 3400 

3440 beep 0 . 1 , 0 : input "Connessi 

one da annullare : primo no 

do = ";p$ 

3441 IF CODE P $ <48 OR CODE p$>57 
THEN GO TO 326© 

3450 BEEP 0.1,0: INPUT "Connessi 

one da annullare secondo 

nodo a " ; r % 

3451 IF CODE r*<48 OR CODE r*>57 
THEN GO TO 3260 

3455 CLS 

3460 LET cnlaURL P$: LET Cn2=URL 

34$0 FOR i =1 TO 3 

3490 IF CCcnl,i)=cn2 THEN LET C( 

cnl.i) =0: GO TO 3560 

3500 NEXT i 

3510 FOR i =1 TO 3 

3530 IF c(cn2,i)=cnl THEN LET CC 

cn 2 , i ) =0: GO TO 3560 

3540 NEXT i 

3550 BEEP 0.1,0: PRINT 01;"Conne 
ssione non trovata": PAUSE 1. PA 
USE 80: GO TO 3260 
3560 BEEP 0.1,0: PRINT «1; "Corine 
ssione annullata = ";cnl 

; - " ; cn2 : PRUSE 1: PRUSE 0: GO 

TO 3440 


gnare: scelta questa opzione ei apparirà 
quindi un secondo menu: 

Coordinate nodi 
Unione nodi 
Controllo 

Per disegnare l'oggetto voluto dovremo 
inserire prima le coordinale dei nodi e poi 
specificare come sono collegati. 

•Routine inserimento coordinate. 

Per inserire le coordinate dei nodi biso- 
gna attribuire ad ogni nodo un numero, 
poi assegnare a questo numero i valori del- 
le sue coordinate rispetto agli assi X.Y.Z. 
orientati come in figura I. 

Appena scelta l'opzione "Coordinate 
nodi" appariranno le seguenti scritte. 
PV=1UP = 0NN = 0 
Coordinate nodi 
NXYZ 



PV è una variabile che indicherà sempre 
il numero del nodo che stiamo per memo- 
rizzare (abbreviazione di "primo vuoto"); 

UPè la variabile che indica il numero dei 
nodi più alto finora memorizzato (abbre- 
viazione di "ultimo pieno"): 

NN indica il numero dei nodi memoriz- 

N indicherà il numero dell'ultimo nodo 
immesso nel calcolatore: 
in basso sullo schermo saranno richieste 
successivamente le tre coordinate da attri- 
buire al nodo. 

Una volta assegnate, i loro valori, non- 
ché il numero del nodo, appariranno sullo 
schermo: poi verranno incrementate le va- 
riabili PV. UP. NN e apparirà la richiesta 
coordinate relativa al nodo successivo. 


MCmicrocomputer n. 38 - febbraio 1985 


139 



Per uscire da questa fase basta premere 
ENTER alla richiesta di input: l'uscita è 
comunque automatica dopo avere inserito 
le coordinate dell'ultimo nodo disponibile. 

•Routine unione nodi- 

li computer ci chiederà alternativamen- 
te il numero di un nodo principale ed il 
numero di un nodo ad esso connesso. 

Come abbiamo già osservato, la memo- 
rizzazione delle connessioni tra i vertici è 
un'operazione indispensabile per poter di- 
segnare; per essa lo Spectrum segue la se- 
guente procedura: chiede prima il numero 
del "nodo principale” (può essere quello di 
un "nodo qualsiasi"), poi il numero del 
“nodo secondario", che sarà un qualsiasi 
nodo collegato da una linea con il primo. 

È necessario memorizzare tutte le con- 
nessioni che si riscontrano nel solido, cioè 
gli spigoli del solido. 

I dati inseriti appariranno mano mano 
sullo schermo per facilitare la ricerca dei 
nodi non ancora registrati. 

Le connessioni tra i nodi vanno inserite 
una volta sola, quindi, ad esempio, se è già 
stata assegnata ia connessione 5-2, il com- 
puter si rifiuterà di accettare la connessio- 
ne 2 - 5 facendo apparire la scritta “la 
connessione 2 - 5 è già stata assegnata". Un 
altro messaggio apparirà se tenteremo di 
assegnare una connessione con un nodo le 
cui coordinate non sono ancora state me- 
morizzate. In questo caso sì dovrà uscire 
dalla routine per entrare in quella di inseri- 
mento coordinate (si esce con ENTER). 
Ogni nodo può avere al massimo 3 connes- 
sioni: tentando di assegnarne una quota, 
appare il messaggio “assegnare un nuovo 
numero ad uno dei seguenti nodi: ni - n2“. 
dove ni è il nodo in questione e n2 il nodo 
col quale lo si voleva collegare. 

Per ovviare a questa limitazione basta 
definire un nuovo nodo con le coordinate 
di uno dei due nodi interessati. 

Per esempio, se apparisse il messaggio 
"assegnare un nuovo numero ad uno dei 
seguenti nodi: 3 - 7“ si dovrà definire un 
nuovo nodo con le stesse coordinate del 3 
(o del 7): in questo modo il nodo si raddop- 
pia e diventa possibile assegnargli altre tre 
connessioni. 

Stampa dati 

La routine di stampa dati permette di 
vedere sul video le matrici che contengono 
le coordinate dei nodi ed i loro collegamen- 
ti. Premendo il tasto S si può arrestare la 
stampa; per ripartire basta premere un ta- 
sto qualsiasi. 

Al termine si deve premere ENTER per 
tornare al menu di controllo. 

Correzione dati 

Questa opzione ci permette di corregge- 
re i dati relativi alle coordinate dei nodi ed 
ai loro collegamenti. 

Nel primo caso si può scegliere se cancel- 
lare del tutto un nodo oppure semplice- 
mente modificarne le coordinate. 


Optando per la correzione, bisogna spe- 
cificare innanzitutto il numero del nodo da 
correggere e poi assegnare le nuove coordi- 
nate. Volendo invece cancellare un nodo 
basta specificarne il numero dopo aver 
scelto l'opzione di cancellazione. La corre- 
zione dei collegamenti prevede solo la pos- 
sibilità di cancellare un collegamento già 
esistente fornendo i numeri dei due nodi 
connessi: per aggiungere nuovi collega- 
menti è invece necessario utilizzare la rou- 
tine principale di inserimento dati. Il pro- 
gramma riconosce e rifiuta automatica- 
mente eventuali valori errati (ad es. nodi o 
connessioni inesistenti). 

Disegno 

Permette, ovviamente, di disegnare l'og- 
getto (o gli oggetti) precedentemente defi- 

Per prima cosa vengono richiesti gli an- 
goli di rotazione che si vogliono dare 
all'oggetto intorno ai tre assi: va ricordato 
che le rotazioni sono considerate positive 
in senso antiorario rispetto al verso positi- 
vo dell'asse, come si vede in figura: 



Si noti che gli angoli vanno forniti in 
radianti: chi si trova più a suo agio con i 
normali gradi può effettuare la conversio- 
ne con la formula: angolo in radianti = 
angolo in gradi *360/6.28. 

Inseriti gli angoli il computer calcolerà le 
nuove coordinate; il tempo impiegato di- 
penderà ovviamente dal numero dei nodi. 

Terminata questa operazione vengono 
chiesti i dati relativi al punto di vista, ovvé- 
ro alla posizione dell’osservatore. 

La posizione del punto di vista è definita 
da tre parametri: distanza, spostamento. 



— Distanza: rappresenta la distanza del 
punto di vista dal piano verticale XZ. che è 
il piano di proiezione del disegno ed è sot- 
toposto alle seguenti restrizioni: 

I ) deve essere un numero positivo; 

2) deve essere ad una congrua distanza 
dall'oggetto disegnato. 

Se vogliamo inquadrare nel disegno tut- 
to l'oggetto, questo deve essere compreso 
entro il cono di visione orizzontale, che ha 
un'apiezza di 60 gradi. 



È possibile avvicinarsi ulteriormente, 
ma l'oggetto verrà inquadrato solo par- 
zialmente; in ogni caso il punto di vista non 
potrà mai essere “interno" all'oggetto da 
disegnare. 

— Spostamento: rappresenta la distanza 
del punto di vista dal piano verticale ZY. 
Può essere un numero qualsiasi, a patto 
che il cono di visione che individua (assie- 
me a "distanza") inquadri effettivamente 
l'oggetto. 

— Altezza: rappresenta la distanza dal 
piano orizzontale XY. Può assumere qual- 
siasi valore, ma naturalmente verrà dise- 
gnata soltanto la parte dell'oggetto che in- 
siste nel cono di visione verticale, che ha 
un'ampiezza di circa 41 gradi. 


2 

OGGETTO 

« 

CONO 01 VISIONE 
VERTICALE 

Figura 5 

T 


Inseriti questi tre parametri viene chie- 
sto “Vuoi disegnare ?”; questo per permet- 
tere di correggere i dati relativi agli angoli 
di rotazione ed al punto di vista. 

Se tutto è posto si può rispondere col 
tasto S; premendo N si ritorna al menu di 
controllo. 

Terminato il disegno è possibile ottenere 
l’hard copy dello schermo, variare la posi- 
zione del punto di vista e ridisegnare (con- 
servando quindi gli angoli di rotazione 
precedentemente fissati) oppure tornare al 
menu di controllo. 


140 


MCmicrocomputer n. 38 - febbraio 1985 


Consigli per l'immissione dei dati 

1) Posizionare l’oggetto con il maggior 
numero di lati possibile parallelo agli assi 
cartesiani. 

2) Numerare i vertici in ordine crescente 
e disegnare una pianta per ogni quota alla 
quale si trova un vertice. 

3) inserire le coordinate dei vertici di 
ogni pianta, iniziando da quella a quota 
più bassa. 

4) Scrivere le connessioni tra i vertici 
procedendo dal nodo col numero più bas- 
so a quello col numero più alto, e scrivere 
solo le connessioni con nodi che hanno 
numeri più alti del nodo principale. Anche 
neU'inserimento delle connessioni convie- 
ne seguire l’ordine delle piante disegnate. 

Ecco un esempio pratico: 



Strutture di dati utilizzate 

Vi sono due tipi di dati memorizzati: le 
coordinate dei vertici del solido rispetto ai 
tre assi cartesiani e le connessioni dei verti- 
ci tra loro (cioè gli spigoli che uniscono i 
vertici e definiscono le facce del solido). 

Il primo tipo di dati viene immagazzina- 
lo in una matrice T di dimensioni K*4. 
dove K è il numero massimo dei nodi (può 
arrivare fino a 350 sullo Spectrum 48 K). 

Le prime tre colonne della matrice sa- 
ranno occupate dalle coordinate del pun- 
to. mentre la quarta colonna sarà riservala 
ad un flag che verrà settato quando il pun- 
to sarà definito e resettato quando il punto 
verrà cancellato. 

Il secondo insieme di dati definisce l'u- 
nione dei nodi tra loro; esso è memorizzato 
in una matrice C di dimensioni K*3. 

Ogni riga si riferisce al numero di un 
nodo e gli elementi contenuti in essa indi- 
cano i nodi connessi. 

Prima di assegnare una connessione, il 
programma controlla questa matrice per 
evitare di accettare una connessione già 
effettuata. 

La terza struttura di dati utilizzata è la 
matrice B, di dimensioni (3,4), che viene 
sfruttata nelle operazioni di disegno sullo 
schermo. 

In essa sono immagazzinate le coordina- 
te di schermo del punto N e dei tre punti ad 
esso connessi. 

Le prime due colonne contengono le 
coordinate del nodo N (la prima colonna le 
ascisse e la seconda le ordinate ). 

Le altre due invece le coordinate dei tre 
nodi uniti al primo. 


Questo programma è disponibile su 
cassetta presso la redazione. Vedere l’e- 
lenco dei programmi disponibili e le 
istruzioni per l’acquisto a pag. 153 


software 

spbcwum 


I Delete e Cali in L.M. 

di Luigi Rizzo - Pisa 

Delete 

Questa è una breve routine che permette 
di cancellare gruppi di linee Basic con una 
istruzione del tipo PRINT USR 64588, 
first, last dove first e last sono i due numeri 
che indicano la prima e l’ultima linea da 
cancellare. 

Una tale semplicità di chiamata non è 
collegata ad una eccessiva occupazione di 
memoria, infatti sono sufficienti solo 41 
byte per svolgere la funzione desiderata. 

L'unica cosa alla quale bisogna fare at- 
tenzione nell'uso é che non vengono con- 
trollati i valori dei parametri, per cui for- 
nendo numeri maggiori di 9999 come nu- 
mero di linea si possono avere risultati 
"strani". 

Nel programma si fa largo uso di routine 
della ROM, per le quali è impensabile dare 
una spiegazione completa: ecco comunque 
alcuni accenni sul loro funzionamento (per 
ulteriori spiegazioni si può consultare il 
libro The complete Spectrum ROM disas- 
sembly. edito dalla Melbourne House): 
S196E In entrata HL contiene il numero 
di una linea Basic. Al ritorno HL contiene 
l'indirizzo iniziale della linea (o della suc- 
cessiva se questa non esiste) e DE punta 
all’inizio della linea precedente. Il flag Z è 
posto uguale a 1 se la linea cercata esiste, a 
0 altrimenti. 

S19E5 Cancella le locazioni da DE a HL 
- 1 , recupera lo spazio ricavato ed aggiorna 
i puntatori. 

S24FB È una delle routine più comples- 
se. Valuta l'espressione il cui inizio è indi- 
cato dalla variabile di sistema CH ADD 

e pone il risultato nello stack. fp. Al ritorno 

CH ADD punta al carattere successivo 

alla fine dell'espressione. 

#2DA2 Carica in BC un numero dallo 
stack. fp. 

Il caricatore esadecimale proposto effet- 
tua automaticamente la verifica dei dati 


Esempio di output 





MCmicrocomputer n. 38 - febbraio 1985 


141 


inseriti e presenta la possibilità di rilocare 
la routine (in questo caso la chiamata do- 
vrà essere PRINT USR <origine> ). 

Una volta caricato il codice lo si deve 
salvare su nastro con SAVE "delete" CO- 
DE 64588,41, in modo da poterlo poi cari- 
care quando serve. 


Cali 

Quando si utilizzano delle routine in lin- 
guaggio macchina, specialmente in fase di 
prova, è spesso necessario inizializzarc i 
registri della CPU. ed è altrettanto utile 
vedere i loro contenuti al rientro: questa 
routine permette proprio di effettuare tali 


operazioni direttamente dal Basic, senza 
appesantire ulteriormente il programma in 
L.M. in fase di sviluppo. 

Naturalmente una routine del genere è 
utile se è abbastanza corta e semplice da 
usare, perché esistono anche dei program- 
mi monitor in L.M. che svolgono funzioni 



142 


MCmicrocomputer n. 38 - febbraio 1985 



MCmicrocomputer n. 38 - febbraio 1985 


143 


SPÉCTRUM 

analoghe ma sono piuttosto lunghi. La 
routine presentata è lunga appena 231 byte 
ed è anche facilmente rilocabile (contiene 
solo 8 indirizzi assoluta- 
li metodo usato per passare i parametri è 
decisamente nuovo, nel senso che non fa 
ricorso a delle macchinose espressioni per 
caricare nello stack. fp tutti i dati necessari: 
una tipica istruzione di chiamata ha la for- 
ma 

1000 RANDOMIZE USR 64768: 
PRINT routine. A. F. HL. BC. DE. IX 
e può essere seguita o preceduta sulla stes- 
sa linea da altre istruzioni Basic. 

I parametri indicali hanno ovvio signifi- 
cato, e 'routine' é l'indirizzo della routine 
da eseguire. 

A questo punto ci sono due cose da no- 
tare: prima di tutto non è detto che debba- 
no essere fomiti tutti i parametri sopra 
specificati: se qualcuno è superfluo sempli- 
cemente può essere omesso (ovviamente 
andranno omessi anche i successivi). In 
secondo luogo per tali parametri si potrà 
utilizzare qualsiasi cosa lo Spectrum valuti 
come un numero, oppure delle stringhe 
particolari (per esempio "8FC10"), che 
verranno valutate con il loro valore esade- 
cimale. Queste stringhe devono iniziare col 


carattere al quale seguono caratteri 
esadecimali, maiuscoli o minuscoli, dei 
quali verranno considerati solo gli ultimi 4 
(o meno, se ne servono solo 2 o ve ne sono 
meno di 4). 

All'esecuzione dell'Istruzione vengono 
assegnati i valori ai vari registri, viene ese- 
guita la routine utente, dopodiché si salta 
ad un'altra routine che stampa i valori esa- 
decimali di tutti i registri principali e torna 
al Basic. 

Una stampa tipica può essere 

AF S1000 

HL S5C3A 

BC S107F 

DE 80000 

IX 80000 

IY S5C3A 

Tra le routine presenti nel programma 

PR HL e PR A possono risultare utili 

anche in altri programmi. 

Esse stampano rispettivamente il conte- 
nuto di HL e di A. 

La stampa dei valori avviene sul file at- 
tualmente in uso. 

Per assicurarsi che sia il video conviene 
far precedere l'istruzione RANDOMIZE 
da PRINT: 


I Prova riflessi 

di Luca Brigai li - Milano 
Come dice il nome, il programma prova 
i riflessi del giocatore. Non è però (né vuol 
essere) un vero e proprio test, ma solo un 
divertente giochino ispirato a quelli che si 
vedono nei bar ed al luna park. 

Si deve premere il più rapidamente pos- 
sibile un tasto qualsiasi non appena com- 
pare sullo schermo, dopo un tempo di atte- 
sa compreso tra I e IO secondi, la scritta 
ORA! 

Premendo un tasto prima dell'appari- 
zione della scritta viene segnalata la falsa 
partenza. 

Dopo 10 tentativi il programma fornisce 
il tempo medio di risposta; volendo è possi- 
bile conoscerlo anche prima (basato natu- 
ralmente sul numero di prove effettuate 
sino a quel momento) premendo il tasto 
SPACE. 

Il listato è corto e molto semplice; volen- 
do si può abbellirlo, ad esempio preveden- 
do una gara fra più giocatori con tanto di 
commenti al risultato ottenuto (anche se in 
fondo non è tanto piacevole sentirsi dare 
della lumaca da una stupida macchina!). 



60 PRINT '" TEMPO DI RISPOSTA. 


";T*2," CENTESIMI DI 


SECONDO" 

4 REM * * 

85 BEEP t/50,20 


90 LET St=St+t 

5 REM 

100 FOR y = l TO 300: NEXT y 

7 GO SUB 9000: BORDER 4: PAPE 

120 NEXT X 

R 4 INK 0: CLS 

125 IF p=0 THEN LET p =X 

8 print "Questo programma p 

160 LET tm=St/p 

rova i tuoi ri f lessi Dopo un 

170 print "il tuo tempo di risp 

periodo di attesa varia-bile da 

osta medio e di " ; INT itm*2+.5) 

1 a 10 secondi appari -r a' sui 

centesimi di secondo." 

lo schermo la scritta" "81351" " . 

130 PRINT '"Premi ""S"" per 

h quei punto dovrai premere 

fermarti o un altro tasto per 

un tasto qualsiasi il piu veioc 

ricominciare." 


190 PAUSE 1: PAUSE 00: IF INKEY 

9 PRINT "Dopo 10 tentativi co 

* = "S" OR INKEY t = " S " THEN STOP 

n o s c e r a i il tuo tempo medio di r 

200 RUN 15 

ispos ta "Premi SPRCE per termi 


nare anti- cipata mente il gioco. 

9010 BORDER 2: PRPER 6: CLS 


9020 BRIGHT 1: OUER 1 

10 PRINT Premi un tasto q 

9030 LET 2 $ = " PROUA RIFLESSI" 

ualsiasi per incominciare.": P 

9035 LET i ri = ( 32 -LEN z*)/2-l 

AUSE 0 

9040 FOR 2=1 TO LEN Z* 

15 LET St=0: LET P=0 

9050 LET i = INT <RND*5) 

20 FOR X=1 TO 10 

9060 LET ax =INT ÌRND*2)*230: LET 


P X = INT iRND*25) +ax 

25 PRINT "TENTATIUO N. ";x 



9070 LET ay=INT iRND*2)*150: LET 

31 IF INKEY $ = " " THEN LET p =X - 

p y = INT iRND*25) +ay 

1. LET x*100. GO TO 120 


33 IF INKEY $ < > " ” THEN PRINT RT 

9030 LET p fx= (z + in) *8+4 

10,9. FLRSH l.-FRLSfl PARTENZA!" 


' FLRSH 0:" RSPETTR LR SCRI 

9100 INK i 

TTh fgàfn BEEP 3.-20 CLS : GO 

9110 PLOT p x , p y : DRRU ix,iy 


9120 BEEP .125, INT i.RND*60)-20 

40 POKE 23674,0. POKE 23673,0: 

9130 PLOT px,py: DRRU ix,iy 

POKE 23672,0 

9140 BEEP .125, INT (RND*60)-20 

50 PRINT RT 10,14; PRPER 7, "HE 

9150 PRINT FLASH 1; RT 10,in+z;z* 

^*60 IF INKEY $=" " THEN GO TO 60 

9160 NEXT z 

70 LET t=6S536*PEEK 23674+256* 

9130 BRIGHT 0: OUER 0 

PEEK 23673 +PEEK 23672-1 

9190 PAUSE 400: RETURN 


144 


MCmicrocomputer n. 38 - febbraio 1985 



COMPUTEHSHOP 


LA TECNOLOGIA APPLE E EASY BYTE 




cura t li Fabio Schiuttarcllu 



Viaggio nello spazio 

ili Marco Umiliali - Aligera ( VA ) 

Il gioco consiste nell’immaginaria esplo- 
razione di un'ampia zona dello spazio side- 
rale alla ricerca di pianeti abitati. Lo scher- 
mo e la tastiera del calcolatore fungeranno 
da pannello di comando della nostra astro- 
nave attraverso il quale riceveremo le in- 
formazioni dallo spazio circostante e con- 
trolleremo la nostra rotta. Il gioco non è 
grafico, per cui non ci saranno mappe stel- 
lari. disegni di pianeti e stelle, basi nemiche 
o astronavi: tutto ciò viene rappresentato 
in forma numerica e tramite messaggi che 
compaiono sullo schermo, come in defini- 
tiva potrebbe accadere sul pannello stru- 
menti di una nave spaziale che non sia 
proprio "deH'ultima generazione". 

Per rappresentare lo spazio e quanto in 
esso contenuto viene fissato un sistema di 
assi cartesiani, ossia di trerellechesi incro- 


ciano nel punto di coordinate 0,0.0: ognu- 
na di queste tre rette forma un angolo di 90 
gradi con le altre, e insieme individuano le 
tre direzioni che ci permettono di identifi- 
care ogni singolo punto dello spazio. La 
direzione destra - sinistra viene identificata 
con l'asse X. quella alto - basso con l’asse 
Y. quella avanti-indietro con l'asse Z. Lo 
spazio preso in considerazione nel pro- 
gramma è un cubo avente lo spigolo lungo 
16.000. avente un vertice nell'origine e si- 
tuato nel primo ottante. I valori utili per le 
coordinate vanno quindi da 0 a 16.000. 

All'inizio del programma vengono gene- 
rate in maniera casuale 50 terne di valori, 
rappresentanti le coordinate di 50 oggetti 
spaziali: tali valori vengono posti in tre 
matrici e in base all'indice viene stabilito il 
tipo di oggetto cui le coordinate si riferi- 
scono. Poiché la disposizione degli oggetti 
avviene in maniera casuale, la loro distri- 


buzione non è perfettamente omogenea, e 
può capitare di trovare zone di spazio piut- 
tosto vuole e altre molto “affollate". 

All'inizio del gioco la nave si trova nel 
punto di coordinate 0.0.0 e li resta finché 
noi non interveniamo agendo sui comandi. 
I tasti guida sonoQ.W.E.A.D.S.I primi tre 
servono per imprimere una accelerazione 
positiva di valore 100 nella direzione di 
uno dei tre assi coordinati, rispettivamente 
X. Y e Z. I secondi tre svolgono una fun- 
zione opposta producendo una accelera- 
zione negativa di valore 100 sempre nelle 
direzioni degli assi coordinati, facendo 
quindi rallentare la nave o anche retroce- 
dere. 

Una volta impressa una spinta alla nave, 
secondo le leggi dell'inerzia, se non inter- 
vengono forze esterne questa prende una 
velocità che si mantiene costante nel tem- 
po. Se diamo più spinte in direzioni diver- 



146 


MCmicrocomputer n. 38 - febbraio 1985 



MCmicrocomputer n. 38 - febbraio 1985 


147 


2730 

2750 


2790 

2800 

2810 

2820 

2830 

2840 


2860 


2900 


2930 

2940 

2950 

2970 

2980 

2990 


GOSUB 2230 
GOSUB 2430 
GOSUB 1310 
RETURN 

REM «««BUCO NERO»»» 

1F RR= 1 TIIEN 2910 

A ATTENZIONE. SCI NEL CAMPO' 
GOSUB 590 

A*-'Oi GRAVITA’ DI UN BUCO NERO' 


COSUB *00 
«=50000000 
GOSUB 2680 



3080 GOSUB 530 
3090 A*=STR»<YM) 


530 

AL-STR9 ( Zh » 


3150 C-19 
3160 GOSUB 530 
3170 GOSUB 680 
3100 GOSUB 950 
3190 GOSUB 1310 
3200 OOSUB 680 
3210 GOSUB 950 
3220 OOSUB 1310 

3230 DI=< <XM-X) '2l (YM-Y) 2XZM-Z>"2)"< 1/2) 
3240 IT DI <30 THEN 3800 
3250 FOR 0=1 IO 16 
3260 DALL SCREEN<0> 

32BU CALL SCREEN<4> 

3290 A*= 'MINA EVITATA " 

3300 R=20 
3310 GOSUB 600 
3320 GOTO 280 

3330 REM «««CAMPO 01 FORZE»»» 

3340 CALL IICNAR < 1 9 , 1 .32, 160 > 

3350 A*='ATTENZ10NE, CAMPO DI FORZE' 

3360 GOSUB 590 


3380 VX=INT < UX/3) 

3390 VY=INT < VY/3) 

3400 VZ=INT (VZ/3) 

3410 GOSUB 1310 

3420 GOSUB 2230 

3430 GOTO 280 

3440 REM «"«PIANETA*»* 

3450 GOSUB 1310 
346D GOSUB 2230 
3470 IF SS=I THEN 3600 

3490 A* = -SIAMO VICINI A UN PIANETA I “ 
3500 GOSUB 590 

3510 A*="SE TI AVVICINI A DISTANZA 


3S30 

3540 


GOSUB 600 

A* = 'INFERIORE A 500 UNITA’ 


3560 GOSUB 600 

3570 A»='PU01 SCOPRIRE SE E’ ABITATO’ 


3590 GOSUB 600 


3610 

3630 


3690 

3710 

3720 


3760 

3770 

3780 

3790 

3800 

3010 

3030 

384U 


IF D< 1X300 THEN 3880 
IF 0(1X500 THEN 3630 
DOTO 280 

IF RNDI0.60 THEN 3750 
CALL HCHAR<19. 1.32,150» 
At="PURTROPPO NON VIENE RILEVATA" 

A4=" ALCUNA TRACCIA DI VITA" 

R=20 

GOSUB 600 

A(I >=INT(RND« 14000) «1000 
B(I»=INT CRND* 1 4000 ) + 1 000 
ECI ) =INT <RND»1 4000 ) * 1000 
GOTO 200 

CALL HCHAR<19, 1 .32, 150) 

A* =" MOLTO BENE, HAI SCOPERTO' 

GOSUB 590 

A*='UH PIANETA ABITABILE' 

R=20 

GOSUB 600 

A*=-MA DEVI CERCARE ANCORA. ' 

R=2I 

GOSUB 600 
GOTO 3700 

REM »»»FINE GIOCO»»» 


3000 FOR S=1 TO 15 
3890 CALL SCREEN(S) 

3900 CALL 50UNDC 100, I I0.5«2, -6,G«2) 

3910 NEXT S 

3920 CALL SCREENC4» 

3930 CALL CLEAR 

3940 IF ZZ= I THEN 3970 

3950 PRINT ' ASTRONAVE DISTRUTTA 

3960 GOTO 3990 

3970 PRINT " VELOCITA’ SUPERIORE A 4501' 
3975 PRINT ' ASTRONAVE ESPLOSA' ::: s s s 


4000 

4010 

4020 

4030 


4060 

4070 


4100 


NEXT S 

CALL CLEAR 

GOTO 4150 

A*= COMPLIMENTI. IN 


PORTATO A" 


A*='TERMINE LA TUA MISSIONE.' 


A*="NEL TEMPO DI" 


R=21 

GOSUB 600 


4130 
4140 
4 150 


4180 

4190 



4270 

4200 

4290 


4310 

4320 

4325 

4340 

4360 

4370 

4300 

4390 

4400 



GOSUB 530 

A*="PER GIOCARE ANCORA PREMI 5' 


GOSUB 600 
FOR KK=1 TO 200 
CALL KEY<0,K,S> 



MCmicrocomputer n. 38 - febbraio 1985 


se, la velocità assoluta e reale è la risultante 
della somma delle diverse spinte e viene 
calcolata con una semplice formula mate- 
matica: la velocità limite raggiungibile é di 
450 pena la distruzione. 

Nel corso del gioco noi non conosciamo 
la posizione degli oggetti presenti nello 
spazio, ma la navigazione non avviene pro- 
prio alla cieca poiché la nave dispone di un 
radar: premendo il tasto R questo entra in 
funzione, e in un raggio di 3000 unità se- 
gnala la eventuale presenza di corpi celesti 
e la loro posizione nell'apposita finestra - 
radar dello schermo. 

Gli oggetti che possiamo incontrare nel- 
lo spazio sono stelle, buchi neri, campi di 
forza, asteroidi nemici e pianeti. 

Le stelle e i buchi neri hanno la caratteri- 
stica di possedere un campo gravitazionale 
e quindi di esercitare una forza di attrazio- 
ne inversamente proporzionale al quadra- 
to della distanza. Il raggio di attrazione 
delle stelle, (che hanno tutte massa uguale) 
è di 1500 unità, mentre quello dei buchi 
neri che esercitano una forza molto mag- 
giore, è di 2000. È molto difficile riuscire a 
sfuggire alla forza di un buco nero, e se si 
esita un poco, generalmente si viene di- 
strutti. Per rendere più immediata la com- 
prensione della direzione in cui agisce mag- 
giormente l'attrazione, questa viene scom- 
posta come al solito nei tre vettori paralleli 
agli assi e il loro valore viene stampato 
sullo schermo. Questi oggetti hanno anche 
una superficie propria di raggio 300 (stella) 
e 500 (B.N.); se la distanza a cui si avvicina 
la nave è minore, si viene distrutti. 

I campi di forza hanno un raggio di 1500 
unità, e sono di ostacolo all'avanzamento 
della nave, in quanto ne riducono conti- 
nuamente la velocità; una sorta di palude 
spaziale: uscirne è soprattutto una seccatu- 
ra. 

Le basi nemiche, all'avvicinarsi della na- 
ve, ne individuano la rotta e piazzano delle 
mine; la posizione di queste compare sullo 
schermo e il giocatore deve evitarle cam- 
biando continuamente traiettoria di volo. 
Se la mina è evitata si vede solo un baglio- 
re, se si è colpiti si ha un'esplosione in piena 
regola. 

I pianeti infine sono il vero obiettivo 
della nostra missione. Per scoprire se sono 
abitati bisogna avvicinarsi ad una distanza 
inferiore a 500 unità. Cosi facendo sul vi- 
deo comparirà il messaggio di risposta de- 
gli strumenti di rilevamento. Bisogna però 
porre attenzione a non avvicinarsi ad una 
distanza minore di 300 unità pena la colli- 
sione con il pianeta. 

II programma prevede anche la possibi- 
lità di avarie (all'astronave, non al TI 99): i 
comandi si bloccano e l'astronave diviene 
ingovernabile per un certo numero di unità 
di tempo. Il gioco può terminare per com- 
pletamento della missione, dopo aver tro- 
vato un certo numero di pianeti abitati, o 
in circostanze meno felici, in seguito alla 
distruzione dell’astronave. 



Analisi del listato 

130-180: definizione delle tre matrici e 
caricamento delle coordinate degli oggetti 
spaziali, fornite dalla funzione RND. 

190: definisce la formula della distanza 
tra due punti dello spazio. 

270-340: queste linee sono il nucleo cen- 
trale del programma e definiscono il susse- 
guirsi delle varie routine fondamentali. 

350-510: creazione della maschera di 
stampa cioè di quelle parole o simboli che 
restano costanti sul video durante il gioco. 

530-570: routine per stampare numeri. 

580-660: routine per stampare stringhe. 

680-940: guida della nave: le righe 700- 
720 inibiscono la guida in caso di avaria e 
determinano quando questa ha fine. 

940-990: calcolo della nuova posizione 
della nave nello spazio. 

1000-1 160: calcolo delle distanze, verifi- 
ca se siamo troppo vicini a qualche corpo 
celeste (e quindi distrutti), o se siamo nel 
suo raggio d’azione (con rinvio alla relati- 
va routine). 

1170-1 300: cancella dallo schermo i mes- 
saggi non più validi. 

1300-1700: aggiorna e stampa i I tempo e 
la posizione della nave, la sua velocità e le 
velocità assiali (queste ultime solo se sono 
variate). 

1710-2220: routine del radar: calcola se 
c'é qualche oggetto nel raggio di 3000 unità 
intorno alla nave; stampa le coordinate e il 
tipo di oggetto. 

2230-2420: stampa sul video le coordi- 
nate di un corpo celeste col quale siamo in 
contatto e la distanza della nave da esso. 

2430-2560: stampa le forze di attrazione 
quando esistono. 

2570-2670: siamo vicini a una stella. 

2680-2830: calcolo della forza di attra- 
zione in relazione alla distanza, scomposi- 
zione di questa nei componenti assiali e 
determinazione della nuova velocità. 

2840-2940: siamo vicini a un buco nero. 

2950-3330: siamo vicini a una base nemi- 
ca; la routine calcola dove si troverà la 
nave dopo due unità di tempo e posiziona 
una mina in quel punto, ne stampa le coor- 
dinate, controlla se gli passiamo vicino e ci 
segnala se ci siamo salvati. 

3340-3450: campo di forza; riduce la ve- 
locità della nave ad un terzo di quella pre- 
cedente. 

3450-3860: siamo vicini ad un pianeta; 
stampa i messaggi di segnalazione, e se 
siamo a giusta distanza stabilisce casual- 
mente se il pianeta è abitato o no, dà poi 
nuove coordinate al pianeta per evitare che 
un giocatore, barando, continui a rivisitar- 
lo. 

3870-4320: fine del gioco, o per distru- 
zione o con esito positivo: stampa i vari 
messaggi, azzera le variabili, e invita a gio- 
care ancora. 

4340-4450: messaggi relativi alla condi- 
zione di avaria. Mt 


mEmoR Informatica srl 

v. Togliatti 4 56030 Perignono Pi 

DISTRIBUISCE ÀLLIWGROSSO 
IN TUTTA ITALIA 

Rpp I © oomputer origino!» oon 
sconti riservati per categorie 
fino ol 35 % del listino originale 

Compatibili 1 00 % mode in itolu 
Soonti fino 60^ del solito listino 


alcuni esempi: 

unita' centrale 64k 640.000 

disk-drive slim 330.000 

monitor 12“ f.v. 159.000 

doppio controller card 66.000 
super seriol card+covo 138.000 
por allei card standord 66.000 
schedo 80 col .+ 64 k 175 .000 


. . . e tutte le oltre periferiche. 


S0FTURRE garantito; 

:contobilita‘ semplificata 240.000 
contabilita ' gener ole 290.000 

gestione magazzino 230.000 
fotturozione integrato 210.000 
gestione effetti 90 000 

oggiornamenti osstcuroti 
:e altri 150 pacchetti in sorgente- 
: documentati e facili do usare . ; 

sconti ulteriori per chi opera nel 
settore e per ordinoz. in g ruppo 

listino completo e dettagliato può' 
essere richiesto inviando 3.000 
Hre in francobolli oppure ordinando 
almeno un orticolo in contrassegno 

Per dettagli tecnici urgenti : 
TELEFONARE allo , 0587_-_61 6 08 4 

MATERIALI FORNITI CON 
GARANZIA 

SODDISFATTI 0 RIMBORSATI 

I prezzi non comprendono I* i.v.a. 
Apple e' un marchio registrato da 
appiè computer ine. 


MCmicrocomputer n. 38 - febbraio 1985 


149 



SCorso di dattilografìa 


Nella presentazione del programma, che 
"o schermo all'inizio dello stes- 
trantisce che seguendo con 


i più velocemente da tastiera il 
ire per il suo TI 99. A nostro parere 
utilità di questo corso di dattilogra- 
La disposizione dei simboli 
del TI 99 è. tranne poche 
quella della tastiera 
idard. quella che troviamo 


però l'utilità di 
Pia va ben oltre. 


sulla quasi totalità dei calcolatori, da quelli 
tascabili ai più grandi, nonché su alcune 

È chiaro quindi che questo corso risulterà 
utile non solo a chi vuole "digitare" più 
velocemente i suoi programmi sul TI 99. 
ma anche e soprattutto a chi per motivi di 
lavoro, o studio, o altro abbia a che fare 
con una tastiera, facendo risparmiare una 
notevole quantità di tempo. 

Purtroppo non esiste un unico standard 
per la disposizione dei caratteri sulla tastie- 

l'rontato la tastiera del calcolatore con 
quella di una macchina pi 




la tastiera " 


si ottengono diret- 


mendo il tasto di SHIFT. altri simboli 
mancano in un tipo di tastiera e sono pro- 
verà ad utilizzarne un'altra, si tratta però 
di differenze minori e siamo convinti che 
una volta appresa la tecnica il cambiamen- 



150 


MCmicrocomf 


n. 38 - febbraio 1985 







mìih ; 

S = \ r i 5 

5i iUUM I 3 I 
:-!!•!*!? 
IL ÌM! ! 



1 1 : 



iiiiliii 

ili \\i. 

liliilìli! 

"1 ifìiJ-1 i, 

il!! i^CHj i| 


MCmicrocomputer n 




TI-99MA EXT. BASIC 



to di standard non richiederà uno 
eccessivo. 

il corso, le cui lezioni sono tratte da un 
ottimo testo sulla materia, si articola in 20 
lezioni; il consiglio dell'autore è quello di 
seguire le lezioni nell'ordine e di passare 
alla successiva solo quando si è sicuri di 
avere "digerito" bene la precedente. Al ter- 
mine. per esercitazione, si può richiedere la 
lezione numero 0 che, a dispetto del suo 
numero d’ordine, è la lezione di ricapitola- 
zione su lutto quanto si è studiato. 

Il programma è perfettamente autodo- 
cumentante e non richiede ulteriori spiega- 
zioni; una breve precisazione è invece ne- 
cessaria per spiegare il significato dei valori 
che compaiono al termine di ciascuna le- 
zione. Oltre al numero totale di battute 
eseguite, al numero di quelle giuste e di 
quelle errate, compare anche sotto la dici- 
tura "BATTUTE G/T” il rapporto tra nu- 
mero di battute corrette e minuti: una spe- 
cie di indice del vostro grado di apprendi- 
mento. Accanto, sotto la dicitura "BAT- 
TUTE MAX” compare il valore massimo 
raggiunto da "BATTUTE G/T" nella cor- 
rente sessione di lezioni. Vorremmo infine 
attirare la vostra attenzione sulla efficienza 
dell’orologio che scandisce il tempo nel 
corso della lezione; per capire come funzio- 
na dovete osservare le linee 730-810, che 
costituiscono il cuore del programma, e 
notare come viene aggiornato il valore del- 
le variabili P e SEC. MC 


Q B DiSCDrn iTl \ferbatim 

ORA I TUOI VERBATIM LI POTRAI RICEVERE DIRETTAMENTE 
IN CASA O IN UFFICIO 


DISCHETTI 5” 1/4 

DATALIFE (5 anni di garanzia) 

SFDD 4.500 

SFDD (conf. da 2 dischi) 10.000 

DFDD 5.500 

VEREX (1 anno di garanzia) 

SFDD 3.800 

DISCHI 8” 

DATALIFE (5 anni di garanzia) 

SFDD 6.000 

DFDD 6.800 

VEREX (1 anno di. garanzia) 

SFSD 4.300 

DFDD 5.900 

CLEANING KIT 5" 1/4 20.000 - 8” 22.000 
DISK DRIVE ANALYZER 

Per IBM e compatibili 65.000 

Per APPLE e compatibili 65.000 

Prossima disponibilità dischetti o 

Indirizzare le richieste a: DISCOM aro 


SCHERMI ANTIRIFLESSO PER MONITOR 
9” 23.000 12” 25.000 

CONTENITORI PORTA FLOPPY 5" con 
chiave 


da 10 Floppy 
da 50 Floppy 
da 90 Floppy 

MONITOR 

Color 14” audio 
Fosfori V. 12” audio 

COMPUTER PROTECTOR 

Copritastiera plexiglass 64-Vic 20 

STAMPANTI 

Mannesman Tally Spirit 

Joystick Spectravideo 

Quick shot II con fuoco automatico 

Tutti i prezzi sono al netto di IVA nella mis 

spedizione. Si effettuano spedizioni in tutta 

contrassegno. 

SCONTI PER FORNITURE 


13.000 

31.000 

42.000 


I 3 ” 1/2 

- Via della Pineta Sacchetti 163 - 00168 ROMA - g 06/6290841- 6279132 


152 


MCmicrocomputer n. 38 - febbraio 1985 


Elenco del software disponibile 
su cassetta o minifloppy 


Per ovviare alle difficoltà 
incontrate da molti lettori 
nella digitazione dei listati 
pubblicati nelle varie 
rubriche di software sulla 
rivista, MCmicrocomputer 
mette a disposizione i 
programmi più significativi 
direttamente su supporlo 
magnetico. Riepiloghiamo qui 
a fianco i programmi 
disponibili per le varie 
macchine, ricordando che i 
titoli non sono previsti per 
computer diversi da quelli 
indicali. 

Il numero della rivista su cui 
viene descritto ciascun 
programma è riportato 
nell'apposita colonna; 
consigliamo gli interessati di 
procurarsi i relativi numeri 
arretrati, eventualmente 
rivolgendosi al nostro Servizio 
Arretrati utilizzando il 
tagliando pubblicato in fondo 
alla rivista. 


Per l’ordinazione inviare l'importo (a 
mezzo assegno, c/c o vaglia postale) 
alla Technimedia srl, Via Valsolda 
135, 00141 Roma. 


Le cassette utilizzate sono Basf C-60 
Compusette II; i minifloppy sono 
Basf singola faccia singola densità. 


Prezzo ! Hote 


APPLB I 


DA2/00 

DA2/01 

DA2/02 

DA2/03 

DA2/04 

DA2/05 

DA2/06 

DA2/07 

DA2/08 


Shape Tablet 22 
Hotomuro 26 
&DBBUG 26 
BDIT + IHPUT 29 
Basic modulare 34 
AMBA Animation Lang. 35/37 
Miniset + Leva-DOS 37 
27 programmi grafici 38 
Adventure Bditor 38 

COJOCODORB 64 


15000 

15000 

15000 

15000 

15000 

15000 

15000 

30000 

15000 


Briscola 

Serpentone 

Othello 

Chase 

Spreadsheet 
Bilancio familiare 
The dark wood 
Totocalcio: si 
Orchetes 
Vordprocessor 
Hellcopt 
Spreadsheet 
ADP Basic 
Vordprocessor 


■id. 


30000 

17000 

17000 

17000 

17000 

17000 

17000 

15000 

15000 

15000 


COJOIODORE VIC-20 


VIC-Kaze 
Pie-Man 
Briscola 
Grand Prix 
Frogger 


CVC/01 

CVC/02 

CVC/03 

CVC/04 

CVC/05 

CVC/06 

CVC/07 

CVC/08 

CVC/09 

CVC/10 

CVC/11 

CVC/12 


DVC/01 BXMA 


VIC-qulz 

Zigurat 

Bxtended Basic 


17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 ! 
23000 ! 
17000 ! 
17000 1 
17000 ! 
17000 ! 
17000 ! 
17000 ! 


Conf ig . base 
Config. base 
Conf ig . base 
Conf ig . base 
RAM: almeno + 
RAM: t 16 X 
RAM: + 16 K 
Config. base 
RAM: almeno + 
Config. base 
RAM: t 16 K 
Config. base 


15000 ! RAM: H 


SIHCLA1R SPBCTRDM 


CSS/04 

CSS/05 

CSS/06 


TRI LAB 

SBT di caratteri 
Grafica TRBDIM 
Ippica 

Graphlc-Comp 
Macchina del tempo 
Piramide di lunnub 
Over Basic 
Prospettiva 


17000 ■ 
17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 ! 


TEXAS TI -99/4 A 


! 


CT9/01 

CT9/02 

CT9/03 

CT9/04 

CT9/05 

CT9/06 

CT9/07 

CT9/08 


Macchina del tempo 

Simon 

Babilonia 

Labirinto 3D 

Piramide di Iunnuh 

Scrabble 

Bquo canone 


17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 ! 
17000 I 
17000 I 
17000 ! 


Sxtended Basic 


‘ C per le cassette, D per i minifloppy 



MCmicrocomputer n. 38 - febbraio 1985 


153 



•a di Fabio Marzocco 



liuti. Ovviamente con le dovine e pesanti limita- 
zioni. Muri li l 'alcrio Arbotinn è riuscito ad imple- 
mentare sul pocket Sharp una sorta di milze - 
adventure dal nome "Minotauro". Il gioco è scrit- 
to completamente in Basic c la sua prima installa- 
zione in memoria putì causare dei problemi per il 
riempimento di unu matrice di dati, ma possiamo 
dire che la latit a sarà poi felicemente ripagata da! 


I Minotauro 

di Marco Valerio Ar bolina - Roma 

Descrizione del gioco 

All'inizio del gioco ci si irova all'ingresso di 
un labirinto dove sono nascosti dieci tesori. Per 
uscire dal labirinto non busta trovare la strada 
giusta ma occorre anche trovare i dieci tesori 


nascosti. Il giococcomplicatodalla presenza nel 
labirinto di un certo numero di mostri, due ra- 
gni. due vampiri, due draghi e il Minotauro, per 
affrontare i quali si possono usare delle armi 
disperse anch'essc nel labirinto. Per nani mostro 
occorre usare un'arma specifica, il DDT per i 
ragni, l'aglio per i vampiri, delle lance per i 
draghi e una spada per il Minotauro: inoltre nel 
labirinto è nascosta anche una corazza che pro- 
tegge da ragni e vampiri mentre può proteggere 
dai draghi solo una volta dopo di che va in pezzi. 
Contro il Minotauro la corazza è inefficace. 

E importante ricordare che non si può portare 
più di un'arma per volta, oltre, eventualmente, 
la corazza. 

Si ricevono punti per ogni tesoro o arma tro- 
vati e per ogni mostro ucciso, oltre ad un premio 
se si riesce a portare a termine il gioco mentre si 
perdono dei punti se si rimane uccisi dai mostri. 

Le istruzioni disponibili sono: 

PRENDI (tasto P). permette di raccogliere un 
tesoro, un'arma o la corazza che si trovi nello 
stesso punto in cui si trova il giocatore; se si 
chiede di raccogliere un'arma quando se ne por- 
ta giù una la cosa risulta impossibile. 

LASCIA (tasto L), permette di lasciare nel 
luogo in cui ci si trova un oggetto, in seguilo a 
questa istruzione il programma chiede cosa si 
voglia lasciare c lo deposita, a meno che non ci 


20: "A" .‘PAUSE "Uuo 

ete nel 1 ab i r i 

e pero dal Min 

z i one (L)ascia 

! 1 p i fi t ini ]7 ; np 

rii n nneh p 11 

ot auro. 1 

e " : PR] N f ' i i 

i ?<S/N) " : R*= 

1 ] 0: PR I NT "le armi 

120: PRINT "Sul dis 

struzione din 

INKEY* : IF R*< 

necessarie pe 

play sara indi 

ventar i o, " 

>"S" AND RS< >"N 

r": PRI NT "comb 

cat a" 

350: PRINT "che inf 

"THEN 20 

atter 1 i . De 1 1 a 

1 80: PRI NT " la pres 

orma de 1 numer 

30: IF R*="N"THEN 


enza di oggett 

o" .‘PRINT "dei 

"CHAIN" 

120: PRJNT "per i u 

i ": PRINT "o, pu 

tes or 1 trovat i 

40: PRI NT "Per and 

amp i r i , i 1 DDT 

rtroppo per uo 

e dell" 

are avant i <EN 

per i " : PRI NT " 

i , d i " 

360:PR1NT "arma in 

TER>" 

ragn i > de 1 1 e la 

190:PRINT "mostri 

vostro posses 

50: PR I NT "Siete a 


ne 1 1 uogo i n c 

so" 

1 1 ingresso di 

p R]NT "dragh !, 

u i " : PRINT "vi 

320: PRINT "Attenzi 

un" : PRINT "la 

e una" 

trovate. Ino ! ir 

one, non potè- 1 

birinto.Per us 

1 30: PRI NT "sola sp 

e saran-" 

380: PRINT "te lasc 

ciré dov- " 

ada per combat 

200: PRINT "no indi 

iare un oggett 

60:PRJNT "ete tro 

t ere " : PRI NT "I 

cat e le direzi 

o" : PRINT "dove 

vare dieci tes 

1 M i notauro. " : 

on i ":PRINT "in 

ce ne g i a un 

ori": PRINT "eh 

PRINT "Potete 

cui potete mu 

"SPRINT "altro 

e vi servi rann 

portare con vo 

avere " 


o a paga-” 

i " 

300: PRINT "<N, S, E, 

390: PRINT "Avrete 

20: PR 1 NT "re i 1 p 

1 40: PR I N T "solo un 

0) e la eventu 

punt i per ogni 

edagg io r i eh i e 

arma. " : PRI NT 

al e "SPRINT "pr 

"SPRINT "tesor 

s t o" : PR] NT "da 

"Ino 1 tre ne 1 1 

esenza di most 

o t rovat o, per 


abirinto e" 

ri da" 

ogm' 

! 1 e " : PRI NT "us 

150: PRI NT "nascosi 

310: PRINT "qualche 

400: PR I NT "arma tr 

c i t e . ” 

a un armatura 

parte nelle i 

ovata e" SPRINT 

80: PRI NT "Attenzi 

che " : PRINT "vi 

m-" : PRINT "med 

"per ogn. most 

one pero! Nel 

proteggerà da 

late vici nanze 

ro uc-" SPRINT 

1 ab i - " : PRI NT " 

i ragni, ’ : 

CM). " 

1 ciso, piu un p 

rinto sono in 

PRINT "dai s/am 

320: PRINT "Le istr 

rem i o se ' 

agguato" 

pini e " 

uzioni che pot 

410:PRINT "portate 

90:PRINT "due rag 

1 60: PR I N T "dai dra 

et e " : PRINT "da 

a t erm ine il" 

n i , due dragh i i 

gh i , ma i dragh 

re sono: la dir 

SPRINT "gioco. 

due " : PR1NT "ua 

i " : PRINT "la f 

ez i one" 

"SPRINT "Buon 

mp 1 r i e ow i am 

anno cadere in 

330: PRINT "del mov 

d i vert i ment o ! " 

ent e " : PRI NT "i 

pezz i " : PRI NT 

i mento, N, S, E o 

980: "CHAIN": PAUSE 

1 Minotauro" 

"sub i to dopo. " 

0" : PRI NT ■ 1 I 

"Sto caricando 

1 00: PRI NT "Per uos 

165: PRINT "L armat 

struzione <P)r 


tra fortuna tr 

ura non u i prò 

end i , " 

990: CHAIN "MINOTAU 

ove-" : PR J NT "r 

t eg- " : PRINT "g 

340: PRINT "1 istru 

RO", 1010 


154 


MCmicrocomputer n. 38 - febbraio 1985 



MCmicrocompul 


- febbraio 1985 


155 



156 


MCmicrocomputer n. 38 - febbraio 1985 


sia già qualcosa nello slesso posto oppure che 
l'oggetto che si vuole lasciare non sia inizialmen- 
te in possesso del giocatore. 

INVENTARIO (tasto I). elenca il numero dei 
tesori, l’arma ed. eventualmente, la corazza in 
possesso del giocatore. 

NORD.SUD.EST.OVEST (tasti N.S.E ed 
O). spostano il giocatore di una posizione nella 
direzione indicala a meno che in quella direzio- 

Durante il gioco vengono visualizzale sul di- 
splay delle informazioni, e cioè: sulla sinistra 
può comparire un messaggio che indica la pre- 
senza nel luogo in cui ci si trova di un oggetto o 
di un mostro, se ci si trova con un mostro si 
possono verificare ire casi, o si dispone dcll'ar- 
ma adatta e quindi il mostro viene considerato 
ucciso, o si dispone della corazza ma non dell'ar- 
ma adatta e allora si può passare incolumi se il 
mostro non è il Minotauro (ma se il mostro è un 
drago si perde la corazza), infine ci si può trova- 

corazza ma contro il Minotauro) c allora si ri- 
mane uccisi ed il gioco ha termine. Al centro del 
display può comparire la lettera M che indica la 
presenza di un mostro, ma senza specificare di 
che tipo, in una delle quattro posizioni adiacenti 
al giocatore. 

Infine sulla destra vengono indicate le direzio- 

È conveniente costruire, mano a mano che si 
avanza nel labirinto, una mappa, tenendo pre- 
sente che il labirinto è rappresentato come una 
matrice di 35* *35 caratteri e quindi di 35*35 
caselle. 

Caricamento del programma 

Il programma può girare solo se si ha a dispo- 


sizione una espansione di memoria (quella da 4 
K è sufficiente). 

Il tutto è suddiviso in tre parti che vanno 
registrate su cassetta di seguito. La prima parte 
(listato I ) contiene le istruzioni del gioco e prov- 
vede a caricare e far partire il programma vero e 
proprio (listato 2) che va registrato sotto il nome 
di "MINOTAURO", Infine il programma prin- 
cipale provvede a caricare i dati necessari a defi- 
nire il labirinto che vengono registrati con la 
variabile BS (34.34) *1. e con il nome “MINO - 
DATI”. Questi dati sono riportati nel listato 3. 
Una volta registrale le tre parti è sufficiente far 
partire la prima dopodiché il caricamento e l'e- 
secuzione proseguono automaticamente. Alter- 
nativamente c possibile eliminare la prima parte 
e far partire direttamente il programma princi- 

Descrizione del programma 

La prima parte si compone semplicemente di 
una serie di istruzioni PRINT che elencano le 
istruzioni, e termina con una istruzione CHAIN 
che permette il caricamento e l’esecuzione auto- 
matica del programma vero e proprio. All'inizio 
del programma (righe 1010- 1015) si definisce la 
matrice BS(34,34)*I e si caricano i dati dalla 
cassetta. I muri sono rappresentati dal carattere 

* mentre i passaggi sono rappresentati da uno 
spazio e le uscite dalla lettera U. Nelle righe 1 020 
- 1060 si distribuiscono in maniera casuale i 
mostri, i tesori, le armi e la corazza, rappresenta- 
ti da varie lettere ( R per i ragni, V per i vampiri. 
D per i draghi. X per DDT, L per le lance. A per 
l'aglio. M per il Minotauro. S per la spada, C per 
la corazza, T per i tesori). La subroutine “CU” 
determina casualmente una casella del labirinto, 
controlla che non sia già occupata da qualche 


software 

SHARP PC-1S00 


cosa e quindi restituisce le coordinate I c J di un 
punto vuoto del labirinto. Nella riga 1070 viene 
definita la variabile D$(0)* 25 che conterrà i 
messaggi di volta in volta presentati sul display. 

Nelle righe 1080 - 1200 si controlla se c'è 
qualcosa nel punto in cui si trova il giocatore e se 
c'c si va alla opportuna subroutine che inserisce 
nella variabile DS(0) un messaggio c. se ci si 
trova in presenza di un mostro, determina l'esito 
dello scontro. 

Queste subroutine sono contenute nelle righe 
10100 - 10900. 19000 e 21000 - 21020. 

Dopo il return dalla subroutine il programma 
salta alla riga 1210 (“STA"), che provvede a 
cancellare il display, a richiamare la subroutine 
“ DIR" (righe 19100 - 20080) che determina le 
direzioni in cui si può muovere e la presenza di 
mostri e completa con queste informazioni la 
stringa D$(0), e infine presenta la DS(0) sullo 
schermo. 

Le righe da 1220 a 1290 provvedono ad accet- 
tare i comandi del giocatore e a chiamare le 
subroutine opportune per l'esecuzione di questi 
comandi ( righe 1 1 000 - 1 8020). Infine si ritorna 
alla riga 1080 (“MAST") che fa riprendere il 
ciclo. 

Se nel corso del gioco si raggiungono le condi- 
zioni necessarie alla fine (il giocatore muore o 
raggiunge l'uscita con dieci tesori) si arriva alla 
riga 1300 (“END”) che mostra il punteggio e 
chiede se si vuole giocare ancora. 

Prima di rispondere, affermativamente a que- 
sta domanda occorre però riportare la cassetta 
in posizione tale da permettere il nuovo carica- 
mento dei “MINO - DATI". MC 



vìa c.salEntìna E1 - 7ID4-5 laverann 


IL NOSTRO COtlPUTCR CONPATIBILC CON TUTTI 
I FRUTTI ■ .UI SORPRGHDCRfl ’ ANCORO DI PIU ' . 

> per voi I ’harduare piu’ sof i st- i cato . . • 
e tanto softuare già’ di spon ibi I e • 


£ 'RSSZSTE/V2R TEEWZCR MOSCE Dfì OLTRE 
DTE ET OtVtVZ DT PROGETT RZZO/VT ELETTRO, VZCHE 

ta I .0035/aE503a tlx.EEBElB libale i 


MCmicrocompuler n. 38 - febbraio 1985 


157 


“THE MAGIC BOX” 



XL 80* Arricchisce l'intelligenza del vostro Commodore 


L'XL 80 è una unità di espansione per il 
computer Commodore che offre una serie 
di caratteristiche professionali solo riscon- 
trabili in computer più costosi. 

Una volta inserito nella - Cartridge port » del 
Vs/Commodore. L'XL 80 Vi fornirà un'usci- 
ta video ad alta definizione di 25 linee a 80 
colonne oppure di 25 linee a 40 colonne. 

Il « Firmware » dell'XL 80 rende il Commo- 
dore di un 20% più veloce liberandolo da 
molte funzioni di « house-keeping ». 
Inoltre, può fungere da « terminal emula- 
tor », il che significa che il Vs/Commodore 
può essere utilizzato come terminale ad 80 
colonne di un « Mainframe computer » op- 
pure come servizio di » time-sharing ». 

In più, il sistema Vi viene fornito con un con- 
sistente pacchetto il sofware completo di 
» auto-start menu » 



Il » Word Manager » è veramente amico Vo- 
stro. Ha una caratteristica speciale; una stri- 
scetta da posizionare sulla tastiera del 
Vs/Commodore per facilitarvi la scelta del- 
le varie funzioni. 

Il » Word Manager » raffigura sullo schermo 
il documento esattamente come sarà stam- 
pato, cosi non occorre fare prove di stampa 
per vedere come verrà il documento. 

Per la compilazione dei testi, c’è una carat- 
teristica professionale che Vi permette di in- 
serire parole o frasi — una caratteristica che 
taglia la riga al punto che volete per inseri- 
re quel che volete. 

È disponibile anche un programma » Mailing 
List » (indirizzario) su disco e questo può 
operare in combinazione con » Word Mana- 
ger». 

Alcune caratteristiche importanti del » Word 
Manager » sono: 

— File di 4 pagine 

— Editing completo 

— Block Move e Copy (spostamento o co- 
pia di blocchi di testo) 

— Ricerca e sostituzione di parole e di bloc- 
chi di parole 

— Margini e tabulati 

— Centramento automatico 

— Allineamento del margine sìa a sinistra 
che a destra 

— Selezione stampante 

— Compatibile con Seria! e RS-232 

Il •• Pian Manager » è uno spreadsheet pro- 
fessionale completo di un » Help screen ». 
Lo spreadsheet Vi permette fino a 63 colon- 
ne e 254 righe per i calcoli ed ha un pro- 
gramma completo « What If ». 



Sono disponibili funzioni matematiche com- 
plete come addizioni, sottrazioni, moltiplica- 
zioni, divisioni ed operazioni negative, am- 
montare di riga o di colonna, minimi, mas- 
simi, conteggi, calcoli esponenziali, logarit- 
mi, percentuali, integrazioni ed approssima- 
li » Pian Manager » permette l'allineamento 
dei titoli, permette di variare la larghezza del- 
la colonna; dispone della funzione di repli- 
care, copiare e cancellare. 

I rapporti finali possono essere stampati sia 
su stampante di serie che su stampante 
RS-232, ed é disponibile anche la funzione 
grafici a barre. 

Insieme all'XL 80 è provveduto un pacchet- 
to di software con programmi » Utility » per 
RS-232 e duplicazione dischi. 

■ Funziona con Commodore 64. con disk-drive 'Sai e 


TRANSUMACI 

INTERNATIONAL 


L'XL 80 è prodotto negli Stati Uniti ed è importato e distri- 
buito esciùsivamente dalla 

TRANSIMAGE INTERNATIONAL Srl - Computer Division. 
V.le Umberto Tupini 103, 00144 Roma (Eur) - Italia 
Tel. (06) 59.18.846 TLX 612619 TI ROMA I 






di Pierluigi Pan un zi 



Dopo aver analizzalo nelle prime due pun- 
tale di questa rubrica le caratteristiche dei 
due tipi di file ( sequenziali e randont) previ- 
sti dall' M BASIC, in questa terza puntala 
presentiamo un programma di esempio, uti- 
lizzante tulli e due i tipi di file ed un certo 
numero di istruzioni deli' M BASIC che ab- 
biamo conosciuto nelle precedenti puntate. 

Diciamo subito che si tratta di un archivio 
di dati, quasi un "mini-database" dal mo- 
mento che non vi sono solo le funzioni di 
input e di output, ma anche un primo abboz- 
zo di funzione di ricerca. Evidentemente non 
è un programma completo di tutte le raffina- 
tezze presenti in altri database, ma può ser- 
vire di aiuto ai lettori che volessero intra- 
prendere lo studio di tale problematica. 

Un data base per 
archiviare i programmi di MC 

Con questo programma, è il caso di dir- 
lo. uniamo l'utile con il dilettevole, in 
quanto vedremo un'applicazione pratica 
delle nozioni fin qui apprese ed inoltre av- 
remo già le basi (funzionanti!) di un archi- 
vio di lutti i programmi pubblicati da 
MCmicrocomputer a partire dal n“l. 

Vedremo via via quali sono stati i ragio- 
namenti che hanno portato a certe scelte di 
programmazione (ad esempio il perché 
della convivenza in un unico programma 
di due file, uno sequenziale e l'altro ran- 
dom). in base alle caratteristiche iniziali 
che il nostro archivio doveva avere. 

Vediamo dunque tali caratteristiche: re- 
cord formato da quattro campi per un to- 
tale di 32 byte per record. I quattro campi 
sono rispettivamente: 

- MCS. campo indicante il numero intero 
della rivista. 2 byte. 

- AS. campo indicante l'argomento. 26 by- 

- C$. campo indicante il codice del eompu- 

- LS. campo indicante il codice del lin- 
guaggio. 2 byte 

In particolare si può vedere che. a parte 
il campo relativo all'argomento che è ov- 
viamente una stringa di caratteri, i rima- 
nenti campi conterranno una coppia di by- 
te rappresentativi di tre quantità numeri- 
che intere: mentre sulla prima non c’è nulla 
da dire, in quanto si tratta del numero della 
rivista, per le altre due si può già vedere 


una prima scelta per snellire la fase di input 
di dati. Si è infatti scelto di codificare sia il 
computer che il linguaggio di programma- 
zione con un valore intero, per non essere 
costretti, in fase di input dati, a scrivere per 
esteso il nome di un certo computer per 
tutti i record che lo prevedono: in questo 


A=- 


modo (e lo stesso discorso vale per i lin- 
guaggi) si è anche risparmiato moltissimo 
spazio del record, spazio che secondo le 
considerazioni delle puntate precedenti era 
pure difficile da stabilire con precisione. 

Osservando ad esempio la routine tra le 
linee 800 e 860 si può vedere che se si deve 
impostare un codice di un nuovo computer 
basta semplicemente impostare il valore 0 
e poi, a seguito della richiesta dei nome 
effettivo, rispondere (e solo quella volta!) 
con il nome completo, al massimo di 26 
caratteri. 

Automaticamente questo nuovo nome 
viene accodato all'elenco dei nomi prece- 


10 CLEAR 2000:CL5:PRINT iPRINT :PRINT :PRINT" iniziai i zzazi one. . . ":PRINT:PRIHT :PRINT 

20 NC=30:REH numero aax coaputer 

30 NL=10:REM nuaero aax linguaggi 

« DIM COt(NC) .LliINLÌ 

50 OPEN 'r', HI, -archivio’, 32 

60 FIELD HI, 2 AS MCt.26 AS Ai, 2 AS Ci, 2 AS Li 

70 GEI H1,1:IF CVI(NCÌ)=0 GOTO 180 

80 PRINT'lettur a vettor i . . :0PEN ’i \H2, 'vettori ' 

90 INPUTH2 , NRX , NCX , NLZ : REM n.record,n.coaputer,n.l mguaggi 

100 IF < NCZ ( =NC ) ANO (NLX(=NL) GOTO 150 

110 PRINT'n. coaputer =';MCZ 

120 PRINT'n. linguaggi =";NLX 

130 PRINT'correggere i valori di nc e ni' 

140 CL0S£:END 

150 FOR 1=1 T0 NCZ : INPUTH2 , COi < I ) : HEXT : C0i ( 0 > =STR i ( NCZ ) 

160 FOR 1=1 T0 NLX:INPUTR2,LIÌ<I):NEXT:LIÌ(0)=STRi<NLZ> 

170 CL0SER2 

180 Vi(1)='n. rivista ' 

190 VÌ(2)='argoaento 
200 VÌ(3)='coaputer 
210 Vt(4)='l inguaggio 

220 CLStPRINT' aenu'tPRINT' ====':PRINT 

230 PRINT' 1 - input dati ' 

240 PRINT’ 2 - ricerca' 

250 PRINT' 3 - correzione" 

260 PRINT' 4 - output generale' 

270 PRINT' 0 - f ine':PRINT 

280 INPUT ' sce 1 1 a ' ; SCZ : SCZ=ABS ( SCZ ) : IF SCZÌ4 GOTO 280 

290 0N SCM GOTO 500,1000,1500,2000,2500 

500 OPEN '0',2,'vettori'sPRINT'salvataggio vettori...' 

510 PRINTH2,NRX,CINT(VAL(C0i(0))),CINT(VAL(LIÌ(0))> 

520 FOR 1=1 T0 VAL(COÌ(O)):PRINTH2,C0i(I):NEXT 
530 FOR 1=1 T0 UAL(LIt(0)):PRINTH2,LIÌ(I) :NEXT:CL0SE:EN0 
600 CLSiPRINTViC 1 ) ; : INPUT NZcLSET MCÌ=MKIÌ(NZ) sRETURN 
700 CLS:PRINTVÌ(2)i: INPUT ARitLSET Ai=ARi:RETURN 
300 CLS:CX=VAL(C0t<0>) 

810 IF CX=0 GOTO 850 

820 PRINT'codice coaputer *:F0R 1=1 TO CX:PRINTI,C0i<I):NEXT 

830 INPUT'codice coaputer (0=nuovo> ' ; C0Z : C0Z=ABS ( C0Z > : IF COZJCZ GOTO 830 


MCmicrocomputer n. 38 - febbraio 1985 


159 


denti e mostrato quando si imposterà il 
record successivo. 

Questo fatto di codificare i nomi dei 
computer c i linguaggi ha però comportato 
la necessità di tenere memorizzata da qual- 
che parte la tavola di corrispondenza tra il 
numero ed il computer e/o il linguaggio: 
dato che queste informazioni stavano co- 
modissime in due vettori, ecco che si è deci- 
so di creare un apposito file sequenziale di 
appoggio: badate bene, è sequenziale e non 
random per il solito motivo che non si 
conosce a priori la lunghezza del nome del 
computer e del linguaggio. 

Tra l'altro bisognava registrare su disco 
anche altre tre informazioni numeriche, 
che non potevano essere poste in un record 
del file random: innanzitutto il numero di 
record del file random nonché il numero di 
computer e di linguaggi usati nella codifi- 
ca. questi ultimi due valori essendo ovvia- 
mente la dimensione dei due vettori, che 
nel programma si chiamano COS (.) e LIS 
(. /Trascurando quelle che sono le parti di 
"abbellimento” dell'output su video, an- 
diamo ad analizzare il programma. 

Il programma 

Innanzitutto nelle righe 20 e 30 vengono 
poste rispettivamente a 30 e IO le dimensio- 
ni dei due vettori di cui sopra: questo per 
dare un valore all'interno della successiva 
DIM. 

Se per caso si avesse sentore che tali 
valori fossero troppo piccoli basterà sem- 
plicemente aumentarli nelle due linee cita- 

Alle linee 50 e 60 abbiamo rispettiva- 
mente l'apertura del file "archivio” e la 
definizione dei suoi campi. 

Alla linea successiva vediamo un utilissi- 
mo trucco programmativo. In particolare 
si va a leggere il primo record e se il campo 
MC$ (cioè il numero della rivista) viene 
trovato a 0 si salta alla linea 180. e cioè si 
salta una parte di programma. 

Vediamo il significato di questo trucco: 
all'inizio, subito dopo aver digitato il pro- 
gramma, il file “archivio" non esisterà an- 
cora, cosi come il file “vettori". 

Con l'istruzione OPEN della linea 50 
inizializzeremo tale file che conterrà byte 
nulli in ogni campo di ogni suo 
record. Ecco che il campo MCS conterrà 
perciò un valore nullo, ben differente da 
qualsiasi valore a regime (diverso da zero). 

Questo fatto è dunque sfruttato per far 
riconoscere al programma che il file “ar- 
chivio” è vuoto. Attenzione però a non 
mettere deliberatamente nel primo record 
un numero di rivista pari a 0, in quanto 
comporterebbe la cancellazione di tutti i 
record registrati quando rielaboreremo il 
programma in un secondo tempo. 

Tutto questo perché quando il file è vuo- 
to sono vuoti anche i vettori e sono nulle le 
tre quantità numeriche già viste prima: in 
definitiva il file "vettori”, come già visto, 
non esiste nemmeno. 

Invece nella linea 80 troviamo una O- 
PEN relativa a tale file: va da sé che. se non Litsting del programma che utilizza un file random per l'archivio ed uno sequenziale per I vena 


840 IF COZUO GOTO 860 

850 CZ=C2+1 :C0$ Ì0)=STR$(CZ) :PRINTV$ (3) ; : INPUT C0*(CZ) :C0Z=CZ 
860 LSET C$=hKI*(COZ):RETURN 
900 CLS:LZ=VAL(LI*(0>) 

910 IF LZ=0 GOTO 950 

920 PRINT'codice linguaggio':FOR 1=1 T0 LZ:PRINTI,LI*U):NEXT 

930 INPUT'codice linguaggio (0=nuovo> ';LIZ:LIZ=ABS(LIZ):IF LIZ)LZ GOTO 930 

940 IF LIZOO GOTO 960 

950 LZ=LZ* 1 :LI* <0 ) =STR» ( LZ ) : PRINTV$ ( 4 ) ; : INPUT LI»(LZ):LIZ=LZ 

960 LSET LÌ=NKI*(LIZ>:RETURN 

1000 G0SUB 600 : G05UB 700:G0SUB 800.-G0SUB 900 

1010 CLS:PRINT'nuiero record';NRZ 

1020 PRINT'1 - ';V$(1);NZ 

1030 PRINT'2 - 'iV*(2);AR1 

1040 PRINT'3 - *iV*(3);C0*(C0Z) 

1050 PRINT'4 - ";V$(4);LI$(LIZ) 

1060 IHPUT-ok (s/n)'tR*:IF Rt=V GOTO 1090 
1070 IF RBOV GOTO 1060 
1080 G0SUB 1200 
1090 NRZ=NRZ+1:PUTB1,NRZ 

1100 INPUT’ancora record (s/n)';R*:IF R$=*s* GOTO 1000 
1110 IF RtOV THEN 1100 
1120 GOTO 220 

1200 INPUT'n.caapo errato' ;CEZ:CEZ=ABS(CEZ) : IF (CEZ=0> OR (CEZ>4) GOTO 1200 
1210 0N CEZ G0SUB 600,700,800,900 
1220 RETURN 

1300 PRINT:PRINT'preai un tasto per continuare" 

1310 R*=INKEYI:IF R$=" THEN GOTO 1310 ELSE RETURN 
1400 CLS:RIZ=0:F0R J=1 T0 4:PRINTV*( J) , :NEXT:PRINT:RETURN 
1500 CLStPRINT" ricerca" 

1510 F0R J=1 T0 4:PRINT" ";J;" - per ";V»(J):NEXT 
1520 PRINT" 0 - ritorno al aenu' 

1530 PRINT 

1540 INPUT'scelta';SZ:SZ=ABS(SZ>:IF SZ>4 GOTO 1540 
1550 IF SZ=0 GOTO 220 

1552 IF SZ=3 THEN PRINT'codice coaputer':F0R 1=1 T0 VAL<C0*(0)):PRINTI,C0»(I):NEXT 
1554 IF SZ=4 THEN PRINT'codice linguaggio'.-FOR 1=1 TO VAL(LI*(0> ) tPRINTI ,LI* ( I ) :NEXT 
1560 PRINTVt(SZ) ; :INPUT S» 

1570 G0SU8 1400 

1580 F0R 1=1 T0 NRZ:GET*1,I:0N SZ GOTO 1590,1600,1610,1620 

1590 IF CVKHCf )=CINT(VAL(St>) THEN GOTO 1630 ELSE GOTO 1650 

1600 IF INSTR(A»,S») THEN GOTO 1630 ELSE GOTO 1650 

1610 IF CVI(C$)=CINT(VAL(S»)) THEN GOTO 1630 ELSE GOTO 1650 

1620 IF CVI(L*mCINT(VAL(S»)) GOTO 1650 

1630 PRINTCVKMC») ,A*,C0$(CVI(C$) ) ,LI$<CVI<L*) ) 

1640 RIZ=RIZ+1:IF RIZ=20 THEN G0SUB 1300:G0SUB 1400 
1650 NEXT:G0SUB 1300: GOTO 220 
2000 CLStPRINT' correzione' 

2010 INPUT'n. record' ;REZ:6ETR1,REZ 
2020 PRINT'1 - ';V»(1);CVI(HC») 

2030 PRINT'2 - ";V»(2);A$ 

2040 PRINT'3 - ’iV*(3) ?C0*(CVI(C»)) 

2050 PRINT'4 - *;V*(4);LI*(CVI(L»)) 

2060 G0SUB 1200: INPUT'ancor a correzioni <s/n)';R»:IF R*=V CLS:GOT0 2020 

2070 PUTRÌ, REZ 

2080 G0SUB 13OO:G0TO 220 

2500 CLS 

2510 G0SUB 1400 

2520 F0R 1=1 T0 NRZ:GET81,I:PRINTCVI<HCÌ),A$,LEFT»(C0*<CVI(C»)),15),LI»(CVKL*>> 

2530 RIZ=RIZ*1:IF RIZ=20 THEN G0SUB 13OO:G0SUB 1400 
2540 NEXTtGOSUB 1300:GOTO 220 


160 


MCmlcrocomputer n. 38 - febbraio 1985 


vi fosse il test sul campo MC$, il program- 
ma incontrerebbe tale istruzione di apertu- 
ra di un file inesistente, fatto che comporta 
il blocco del programma stesso per errore. 
Invece a regime succede che il valore MCS 
del primo record sarà diverso da Q ed allo- 
ra si andrà a leggere il file “vettori”. In 
particolare si leggeranno il numero di re- 
cord, le dimensioni dei due vettori ed i due 
vettori stessi senza alcuno spreco di spazio 
sul dischetto. È inoltre importante chiude- 
re SOLO il file “vettori" subito dopo aver 
effettuato questa lettura: questo perchè si 
presuppone che la successiva operazione 
su tale file sarà una scrittura, per il salva- 
taggio dei valori all'atto dell'uscita dal 
programma. 

Successivamente troviamo l'output del 
"menu" con quattro opzioni più quella di 
uscita: già a questo punto si possono effet- 
tuare le prime migliorie aggiungendo ulte- 

In particolare scegliendo l'opzione (J si 
va alla routine 500 che prevede il salvatag- 
gio delle tre famose quantità e dei due al- 
trettanto famosi vettori, dopodiché si van- 
no a chiudere tutti e due i file e si esce dal 
programma. Ovviamente per effettuare il 
salvataggio abbiamo aperto il file "vettori" 
in output. 


L'input dei dati 

La fase di input dei vari record consiste 


in quattro piccole subroutine relative ad 
ognuno dei quattro campi di ogni record: 
non presentano alcuna difficoltà di inter- 
pretazione, mentre vi è da notare l'utilizza- 
zione dell'istruzione LSET per la memoriz- 
zazione dei vari campi. 

La ricerca 

È questa una parte del programma mol- 
to interessante ed utile in quanto consente 
di visualizzare, tra i vari record, tutti quelli 
che soddisfino una condizione a scelta tra: 

- il “numero della rivista" 

- l’“argomento" 

- il "computer" sul quale gira il program- 

- il “linguaggio" di programmazione 

In particolare per quanto riguarda la 
ricerca per “argomento", si è sfruttata la 
potentissima 1NSTR (substringa, stringa): 
cioè si può indicare come argomento di 
ricerca ad esempio “sort" e subito avremo 
visualizzati tutti quei record aventi “sort” 
come sottostringa del campo "argomen- 
to". Ecco che appariranno ad esempio re- 
cord relativi alÌ'“heapsort”, allo "Shell - 
Metzer sort" come pure un eventuale re- 
cord avente come argomento il "sorteg- 
gio”. 

Impostando come argomento la lettera 
"a”, ad esempio, è facile capire che verran- 
no mostrati tutti i record aventi nella strin- 
ga “argomento” almeno una “a". 


La correzione 


Per quest'altra fase molto importante, 
basta dire che si deve inserire il numero del 
record interessato e subito vi si accederà, 
secondo lo stile dei file random: effettuata 
la correzione, il record verrà riscritto con 
una solita PUT. 

L'output generale e le conclusioni 

Per ottenere una o più videate di tutti i 
record basta eseguire un loop di visualizza- 
zione di un record il cui indice va da I al 
numero massimo di record presenti nell’ar- 
chivio. 

Come si è visto, il tutto è stato realizzato 
molto semplicemente: ripetiamo che non 
era nostra intenzione creare un ennesimo 
data - base (che per giunta è alquanto len- 
to, dal momento che è scritto in Basic). 

Nella prossima puntata analizzeremo 
alcune particolarità dell'MBASIC, riguar- 
danti l’istruzione PRINT, che forse non 
tutti conoscono: anche se esistono nell'in- 
terprete originario della Microsoft, in pa- 
recchie versioni adattate ai vari personal 
alcune caratteristiche si sono “perse per 
strada" oppure, e ciò è ancora peggio, sono 
presenti, ma “dimenticate" dai manuali. 


PROGRAMMA 2000 


|NOVlTA' PROGRAMMA 2000 | 


Per tutti voi un apposito centro per i vostri .problemi 
teletonate al "Software Solution Center" 06/5926442 
In regalo il catalogo “Hard-Soft" 

PROGRAMMA 2000 anche per Commodore C 16/4 PLUS 
I volumi arretrati a lit. 20000 




DA PIU' FORZA 
AL TUO COMPUTER 


in ogni volume troverai 
il MANUALE ITALIANO 
e la cassetta 
di 20 programmi 
per il TUO computer 
un volume 20000 lire 


1.000 LIRE A PROGRAMMA 


P 2000 

COMMQOORE 64 
ìyol 5* 



Tutti ì programmi sono listabili !! 


I Spedire in busto chiusa a: PROGRAMMA 2000 
1 toc. La Macera - 00060 Porse Ilo (Rosa)-- te 1.06/ 5926442 

I : 



I 

I 

I 

I 

I 


MCmlcrocomputer n. 38 - febbraio 1985 


161 


NewFram 




PROGRAMMERÀ 

handbook 



IBM PERSONAL COMPUTER 

Assembly Language forthe IBM 
Personal Computer 

David Bradley 

Beginning with thè lundamentals of computer 
operatori, this hook completely covers thè assembly 
language instructions of thè Intel 8088 and their use 
in thè IBM PC. 

416pages 13-049171-3 Paper $25.95 

Programmer's Guide to MS-DOS 

Denn is Jurnp 

Fornoviceorintermediateprogrammers. tradltional 
character device I/O. non-device Functonal Rie 
Management extended function groups and 
extended memory management are fullyexplatned. 
244 pages 8359-5655-5 Paper $2075 

Understanding and Using dBASE II 

Revised and Enlarged Edition 

R. Krumm 

Concise and easy to use. this software guide shows 
new users how dBASE II can work for them withoul 
goingintounnecessarydetallaboutitscompiexities. 
308 pages 89303-916-0 Paper $25.95 

IBM PC/XT Graphics Book 

John Fowler 

Custom-designed for thè IBM PC/XT. this tutorial 
addresses thè practical questions of how graphics 
work and how to use them. and is full of BASIC 
programming examples 

Paperback c. 300 pages 13-448408-8 $19 45 
Book and disk 13-448416-9 $38.95 (non- 
returnable) 


APPLE MACINTOSH 


Mastering Your Macintosh 
A User s Guide to Apple' s Macintosh 
Computer 

William Skyvington 

300 screen displays. practical business programs. 
and full coverage of thè Maclntosh's "mouse" 
"window” and software packages make this book 
ideal for new or potential users of Appie's new 
computer. 

257 pages 13-559527-4 Paper $13.95 


Programming Tips and Techniques 
for thè Apple 1 1 and Apple Ile 

John Campbell 

A guide to thè advanced functionsof thè Apple 1 1 and 
Ile which demonstrates how to solve programming 
problems 

403 pages 89303-273-5 Paper $25.95 
Book and disk 89303-776-1 $64.95 
Diskonly 89303-782-6 $39.00 (non-retumable) 

COMMODORE 64 


Assembly Language Programming 
with thè Commodore 64 

Marvin L deJong 

All thè important assembly language topics are 
addressed Includlng data transfer, logie operalions, 
branches and loops, and programming thè 6581 
sound intedace device. 

296 pages 89303-319-7 Paper $14 .95 

Machine Language 

for thè Commodore 64 and other 

Commodore Computers 

Jim Butterfield 

Programmers of all levels are introduced to thè 
principles of Commodore machine language — what 
it is, how it Works, and how to program with it 
326 pages 89303-652-8 Paper $12 95 

PROGRAMMING LANGUAGES 

The C Programmer's Handbook 

Thom Hogan 

Revealed in this definitive desktop reference for C 
language users is a wealth of Information about 
C compilers — complete with documentatìon. 
examples, restrictions and defaults. 

262 pages 89303-365-0 Paper $16 95 

FORTH Programming 

Steven Vickers 

An introductory guide which explams how to use 
FORTH commands for decision making repealing, 
performing. arithmetic. sound, graphics and more. 
185 pages 13-326356-8 Paper $19.45 


LIBRERIA PROGETTO 


27/B. 35100 Padova. 


i trucchi del CP/M 


di Pierluigi Panunti 



MBASIC 

Ritorniamo, in questo numero, a parlare 
dell' MBASIC, dal momento che l'argomen- 
to interessa i nostri lettori, ferma restando la 
nostra intenzione di continuare a parlare nei 
prossimi numeri del BDOS. 

Ancora trucchi dell'MBASIC 


Un nostro lettore di Milano, Maurizio 
Gaiani, ci chiede ulteriori chiarimenti sulla 
questione dei "token” e cioè sulle istruzioni 
dell'MBASIC, dal momento che l'articolo 
relativo sul n°35 di MC risultava non mol- 
to chiaro. 

Rimediamo subito, ma dopo aver fatto 
alcune doverose precisazioni. 

Innanzitutto, e lo ricordiamo, stiamo 
parlando della “release 5.21" dell'MBA- 
SIC, dal momento che era quella a nostra 
disposizione (su di un Osbome I) e sulla 
quale abbiamo effettuato i nostri studi. 

A tal proposito chiediamo ai lettori che 
ci scrivono di precisare a quale “release" 
fanno riferimento nelle loro domande, in- 
dicando anche il personal computer sul 
quale lavorano: infatti tra una versione ed 
una successiva dell'MBASIC ci sono pa- 
recchie differenze. 

Detto ciò, ricordiamo anche che la reda- 
zione di questi articoli non trae spunto da 
alcun testo riguardante l'M BASIC dal 
punto di vista "interno", in quanto non 
esistono tali testi, almeno a quanto ci con- 
sta... Se qualche lettore avesse alcune noti- 
zie in merito, è calorosamente invitato a 
mettersi in contatto con la redazione di 
MC! 

Da questo punto di vista non servono 
nemmeno i sacri testi della premiata Digi- 
tal Research in quanto anche il "BASIC - 
80 Reference Manual" non si spinge più in 
là di tanto: a questo proposito rimandiamo 
i lettori anche alla rubrica "Software 
MBASIC". che invece trae parecchi spunti 
da tale manuale. Per tutta questa serie di 
motivi, alcune informazioni riportate negli 
articoli possono essere incomplete se non 
addirittura errate, ma in realtà tutte le mo- 


difiche finora apportate aU'interprete ori- 
ginario hanno funzionato sempre, senza 
comportare inconvenienti alle restanti rou- 
tine. 

Un’altra considerazione è che l'argo- 
mento è tanto stimolante quanto enorme- 
mente vasto, e solo per i soliti motivi di 
spazio a volte si è costretti a troncare un 
certo discorso, sperando nella buona vo- 
lontà da parte dei lettori. D'altronde per 
parlare dell'MBASIC ci sarebbe bisogno 
di un volume alquanto ponderoso... 

In questo numero ritorneremo perciò 
sull'argomento trattato sul n° 35 di MC, 
per aggiungere ulteriori informazioni sotto 
forma di lunghissime tabelle. Lungi da noi 
l'idea di "concludere" l'argomento, anche 
perché siamo consci del fatto che ha biso- 
gno di essere “digerito" lentamente... 

La “Jump Table” 

Facciamo riferimento alla tabella I e ve- 
diamone il significato. Innanzitutto vedia- 
mo che è divisa in due parti: la prima si 
riferisce ai “comandi" dell'MBASIC e la 
seconda alle “funzioni". Bisogna infatti 
pensare che un comando o una funzione 
subiscono un diverso trattamento da parte 
dell'interprete, durante l’analisi di un pro- 
gramma: mentre da un lato un comando 
genera un qualcosa di eseguibile (ad esem- 
pio PRINT è un comando perché esegue la 
stampa sul video di qualche cosa), dall'al- 
tro una istruzione "calcola" qualcosa (con- 
tinuando nell'esempio precedente l’istru- 
zione TAB di "PRINT TAB (IO) ...X" non 
genera alcunché, ma viceversa serve a cal- 
colare la posizione del cursore, alla quale 
poi effettuare la stampa). 

È questo l’ovvio motivo per cui l'inter- 
prete non gradisce istruzioni del tipo “A = 
GOSUB" come pure il comando “SIN 
(20)": nel primo caso la GOSUB non potrà 
mai fornire ("calcolare") un valore da as- 
sociare poi alla variabile A e viceversa la 
funsione SIN non permetterà mai di "ese- 
guire" alcunché. 


Tornando perciò alla prima tabella, an- 
diamola ad analizzare. Come si vede è for- 
mata da quattro colonne: la prima indica 
l'indirizzo di memoria a cui andiamo a 
leggere: a parte la prima riga, tutte le altre 
avranno valori per l'indirizzo sempre in- 
crementati di due, in quanto ciò che andia- 
mo a leggere é a sua volta un indirizzo. 

Infatti nella seconda colonna vediamo 
proprio il contenuto, in forma "leggibile" e 
cioè ponendo prima il byte HIGH e poi 
quello LOW dell’indirizzo, della cella con- 
siderata e della successiva: già qui ci sono 
senz'altro delle differenze da una versione 
all'altra dell’MBASIC. Però non importa: 
basta sapere che quello è l'inizio di una 
routine. 

La terza colonna indica il valore del lo- 
ken dell'istruzione riportata poi in quarta 
colonna: come si vede i comandi sono con- 
traddistinti da un token maggiore di 80 
esadecimale e perciò aventi il bit più signi- 
ficativo posto ad “1”. 

Mentre le varie righe non comportano 
difficoltà di interpretazione; soffermiamo- 
ci sulle prime tre. 

La prima in realtà non farebbe parte 
della tabella dei comandi o istruzioni: è 
stata messa lì solo perché il suo indirizzo la 
poneva come "capostipite”. 

Ed infatti all'indirizzo 0100 (esadecima- 
le!) non troviamo una coppia di byte, ma 
tre e precisamente C3 71 5D, che disassem- 
blati danno "JMP 5D71H". A questo pun- 
to rimandiamo al n°34 di MC dove trattia- 
mo in (buon...) dettaglio tutto l’argomento 
deH’entry point dell’MBASIC. 

Andiamo perciò ad analizzare la secon- 
da e la terza riga, che fanno riferimento a 
due fantomatiche istruzioni “FRCINT” e 
"MAKINT": non sono due istruzioni vere 
e proprie dell'MBASIC, ma sono molto 
utili nelle routine in linguaggio macchina 
create dall'utente e richiamabili da pro- 
gramma con USR o CALL. 

Speriamo di non deludere i lettori dicen- 
do che di questo argomento parleremo dif- 


MCmicrocomputer n. 38 - febbraio 1985 


163 


JUHI' MELE DEI COMANDI E DELLE ISTRUZIONI DELL'hBASIC 5.21 


Indirizzo Contenuto 


Token Comandi; MEASIC 


0100 

0105 

0105 


01 OD 
010D 
oior 
ohi 


Oli? 

0118 

0110 

011F 

0121 

0120 


013? 
01 3B 
0130 
013F 
DUI 
0143 
0145 
Oli; 
014? 
01 4B 
0140 
014F 
0151 
0153 
0155 
0157 
015? 
0150 
0150 
015F 
Olii 
0163 


0169 

OlóB 

0160 

016F 

0171 


017? 
Ù17B 
0170 
01 7F 


01?? 
01 ?B 
0190 


5071 

C;òu 

2?CO 

i3FA 


1651 

43DA 

1470 


IE1C 

22B1 

4451 

OCC? 

OCC? 


-.476 

44B8 

5C04 

1610 


17F5 

0000 

0000 


247B 

OOOC 

5?A3 


5464 

5463 

5384 

5?AA 


Entry pomt dell 'MEASIC 
Routine FRCIN1 
Routine MAKINT 


FOR 

NEXT 

DATA 

INPUT 


RE3T0RE 

GOSUB 

RETURN 

REM 

STOP 

PRINT 

CLEAR 

LIST 


POKE 

CONT 

al SYNTAX ERROR 
al SYNTAX ERROR (STO) 


UIDTH 

ELSE 

TRON 

TROFF 

SUAF 

[RASE 

EDIT 

ERROR 

RÉSUMÉ 

DELETE (DEL) 

AUTO 

RENUH 

DEFSTR 

DEFINÌ 

DEF3NG 

DEFDBL 

LINE 


UMILE 

UHEND 

CALL 

URITE 

COMMON 

CHAIN 

CPTION 

RANDOHIZE (RANDOM) 
SYSTEM (SYS) 


CLOSE 

LOAO 

«ERGE 

TILES 

NANE 

KILL 

LSET 

RSET 

SAVE 

RESET 


019F 
01 Al 
01 A3 
01A5 
01 A7 
01 A? 
01 AB 
01 AD 
01 AF 
01B1 
01B3 
01 B 5 
01 B7 
01B9 


01C3 

01C5 

01C7 

01C? 

DICE 

D1CD 

01CF 

OIDI 

01D3 


0109 
0108 
01 OD 
01 DF 
01E1 
01E3 
01E5 
01 E7 
DIE? 
01 EB 
01 ED 
01 EF 
01F1 
01F3 
01F5 
01 F7 
01F? 
01 FB 
01FD 
MFF 


493C 

496D 

4977 


36B1 

37CE 

3B70 

26AE 

371C 

386A 

390D 

3922 

4AEA 

1FE3 

IDC2 

4BCA 

468A 

4998 

48D6 

48E6 

22A7 

491F 

467E 

4684 

1DBC 

296B 

29E5 

2A11 

2A5E 


Istruzione MBASIC 

LEFT» 

RIGHT» 

MIDI 


557 A 
562C 
5644 
514B 
5HE 
5151 


CHR* 

PEEK 

SPACE» 

OCT» 

HEX$ 

LPOS 

CINT 

CSNG 

CDBL 

FIX 


MKIt 

HKS» 

MKD» 


164 


MCmicrocomputer n. 38 - febbraio 1985 


VP'M 


PUNTATORI AI NONI DEI COMANDI ED ISTRUZIONI 

Indirizzo 

Punta . 

. alla lettera 

0207 

023B 

A 

020? 

02‘iC 

B 

0200 

024D 

C 

Q20D 

02S7 

D 

020F 

02B0 

E 

0211 

02D5 

F 

0213 

02EB 

G 

0215 

02FD 

il 

0217 

0302 

I 

021? 

031E 

J 

021B 

osir 

K 

021 D 

0324 

L 

021F 

0358 

H 

0221 

0371 

N 

0223 

0384 

0 

0225 

039A 

P 

0227 

03AE 

0 

022? 

03AF 

K 

022B 

C3ED 

S 

022D 

0422 

T 

022F 

043? 

U 

0231 

0442 

V 

0233 

044C 

U 

0235 

0464 

X 

0237 

0468 

Y 

0239 

0469 

Z 



ALTRE ISTRUZIONI DELL'MBASIC 5.21 

Token 

Istruzione 

Start Addr 

All' interno di 

CE 

T0 

— 

FOR 

CF 

THEN 

— 

IF 

00 

TAB ( 

1765 

PRINT 

01 

STEF 

— 

FOR 

D2 

USR 

IDCC 


D3 

FN 

IE45 

DEF 

04 

SPCl 

1765 

PRINT 

D5 

N0T 

1D40 


D6 

ERL 

IBCC 

- 

D7 

ERR 

1BBB 


08 

STRINGI 

48F4 

- 

09 

USING 

3EES 

PRINT 

DA 

INSTR 

49BF 


DB 


— 


DC 

VARPTR 

IBDD 

- 

DD 

INKEY» 

4263 

- 

EF 

) 

1A7D 

Calcolo espressioni 

F0 

r 

1A7D 


FI 


IA7D 


F2 


1884 


F3 


1CD2 


F4 

* 

— 


F5 

/ 

— 


Fó 


— 


F7 

AND 

— 


F8 

OR 

— 


Fv 

X0R 

— 


FA 

E8V 



FB 

IHP 

— 


FC 

MOD 

— 


FD 





fusamente in un prossimo numero, nella 
rubrica "Software M BASIC" in quanto 
riteniamo essere quella la loro collocazio- 
ne: tra l'altro nel contesto di questa punta- 
ta non c'entravano molto. 

Scorrendo la tabella possiamo fare varie 
considerazioni, Lo sapevate che l'istruzio- 
ne GOTO si può scrivere anche GO TO? 
Badale bene che il “GO TO" è l'unica "pa- 
rola chiave" che ammette al suo interno 
uno spazio: se per caso nel comando met- 
tessimo due spazi ( "GO TO“ ) allora l'in- 
terprete segnalerebbe errore in quanto tro- 
verebbe un "GO" che non riconosce, se- 
guito dalla parola chiave “TO" tipica del- 
l'istruzione "FOR". 

Invece corrispondentemente ai tokcn 9B 
e 9C troviamo due salti a 0CC9 e cioè alla 
stampa della frase ben nota "SYNTAX 
ERROR". Troviamo li questi due salti in 
quanto le routine relative ai due token in- 
dicati non sono state implementate: ecco 
perché tra parentesi abbiamo riportato la 
nuova STO. creata da noi. Viceversa ve- 
diamo alcuni indirizzi posti a 0000: se per 
caso nel corso di un programma l'interpre- 
te incontrasse un token il cui indirizzo è 
nullo, si avrebbe addirittura il boot del 
sistema con ritorno al CP/M. 

Inoltre troviamo alcune istruzioni con 


segnato tra parentesi il nuovo nome: per 
questi casi, come per quello precedente, 
rimandiamo alle ultime puntate dei "Truc- 
chi del CP/M". Per quanto riguarda le i- 
struzioni. troviamo in tabella tutte le fun- 
zioni relative alle stringhe, quelle trigono- 
metriche. etc. In realtà l'unica istruzione 
che potrebbe essere un comando è la 
M I DS. ma viene trattata a parte dall'inter- 
prete stesso, se per caso viene incontrata in 
un programma. 

Altre istruzioni dell’MBASIC 


Nella tabella 2. che come si può notare è 
alquanto incompleta, sono riportate le re- 
stanti istruzioni dell'MBASIC, istruzioni 
che non si possono mai trovare isolate op- 
pure sono, per cosi dire, "anomale". In 
particolare THEN non si potrà e dovrà 
mai trovare separata da "IF". come pure 
USING non avrà senso se non all'interno 
di una PRINT. Viceversa la USR potrà 
trovarsi sia dopo una DEF (per definire 
l'indirizzo di partenza della routine), sia da 
sola, seguita dal numero della routine (da 0 
a 9) e dalla lista di argomenti tra parentesi. 

L'incompletezza della tabella 2 si spiega 
anche con il fatto che non vi è in memoria 
una vera e propria “jump table" come nel 


caso dei comandi già visti: in realtà è pro- 
prio all'interno delle varie routine di scan- 
sione del testo e di interpretazione del testo 
stesso che si trovano salti alle varie routine 
a seconda di quale istruzione è stata trova- 
ta: i “vuoti" nella tabella possono essere 
riempiti dai lettori che volessero analizzare 
fino in fondo le routine di cui sopra, che 
sono alquanto complesse. 


I puntatori ai nomi delle istruzioni 

La terza tabella infine indica, a partire 
da un indirizzo in prima colonna, l'indiriz- 
zo di partenza (e perciò ancora una volta 
due byte) di quella zona di memoria conte- 
nente i nomi di tutte le istruzioni che inizia- 
no per la lettera indicata nella terza colon- 
na. Rimandiamo ancora una volta al nu- 
mero già citato di MC per i dettagli... 

Concludiamo dunque questa puntata ri- 
cordando che i valori degli indirizzi ripor- 
tati potranno cambiare a seconda della 
"release" dell'MBASIC. cosi come cam- 
bierà anche l'ordine pseudo - alfabetico 
con cui si susseguono i nomi delle istruzio- 

A risentirci nel prossimo numero con 
altre funzioni del BDOS. MC 


MCmicrocomputer n. 38 - tebbraio 1985 


165 


SIEMENS 


PT88, si sente ve 



...e puoi telefonare in pace, 
lavorare indisturbato, magari 
ascoltare musica, leggere una 
rivista e intanto la tua PT 88 
stampa. In silenzio. 

La tecnologia Ink-Jet dà quanto 


altre stampanti non possono 
offrire: un vero silenzio che si va 
ad aggiungere alle grandi qualità 
operative della PT 88: 

8 set di caratteri nazionali, 150 
cps, 80 colonne (132 con la PT 


89), 3 densità di scrittura (10, 12, 
17 c/"), carta in rotoli, a soffietto 
e foglio singolo, grafica in bit 
image e scanner mode 
compatibile con la 
grafica 


are una mosca 



EPSON e IBM, interfaccia 
' seriale e parallela 
nonché svariate altre 
funzioni 


selezionabili via software, il tutto, 
sempre, nel più gradevole dei 
silenzi. Se lavorare in questo 
modo è anche il tuo modo, la 
PT 88 della Siemens è 
quanto hai sempre 


Per ulteriori informazioni, vi 
preghiamo di rivolgervi direttamente 
alla Siemens Elettra S.pA 
20124 Milano, Via Fabio Filzi, 25/A 
Tel.: (02) 6248. 

Divisione componenti e tecnica 
delle comunicazioni. 

Reparto A260. 



ALPHACOM (U.S.A.) 

Mil Computer BBC. Italiana SpA 

Viale Matteotti. BB - 20092 Cinisello Balsamo ( Milano I 


ALTOS (U.S.A.) 
Amitalia 

Via Tonavo. 12 - 20124 M. 


ACS 8000/10 208K RAM 1 floppy 500K « 1 RARO DISK 8' incorporalo 10Mb 18.530000 
ACS 8000/1 2 20 8K RAM 1 floppy disk da 500K * 1 HAR0 DISK 8‘ da 20 Mb 20.230000 
ACS 8000/14 208K RAM 1 floppy disk 500K - hard disk 8" da 40 Mb 24.650 000 
ACS 580/2 6.120.000 
ACS 580/20 192Kb RAM • 1 floppy da 1 Mb * 1 Winchester da 22 Mb 10370000 
ACS 580/40 12.750 000 
ACS 586/20 21 Ì50.000 
ACS 586/40 51 2K RAM 1 floppy da 1 Mb « 1 Winchester da 40 Mb 25.500000 
ACS 68000/12 16 bit 500Kb * 1 floppy da 500K con microprocessore Motorola 

68000 • 1 hard disk da 20 Mb 30.260 000 
ACS 68000/14 16 bit 500Kb • 1 floppy da 500K • 1 hard disk da 40 Mb con 

microprocessore Motorola 68000 34.850 000 
ACS 8600/12 I H.D. da 20 Mb ■ 512Kb 26.350.000 
ACS 8600/14 1 H O. do 40 Mb 512Kb 29 750 000 
ACS 986/40 1024Kb - 1 H.D. da 42Mb 30430.000 
U/K 10/580 wmchester addirionale per 580/10 e 580/20 da 12 Mb 1.990000 
MTU-2 unità a cassetta magnetica da 17 Mb per back-up disco rigido 6630000 
MTU-3 unità a cassetta magnetica do 17 Mb per back-up disco rigido 6.630.000 
MTU-5 unità a cassetta magnetica da 17 Mb per back-up disco rigido 6.630.000 


H00370 TV 
H00373 9" 
H00374 12 
H00376 Eh 
H 00377 II 
H003I0 Pt 
H00315 Pc 
H0D320 Pc 
H00385 II 
H00325 PI 
H00330 PI 
H00335 PI 
H 00340 Xi 
H00345 Xi 
H 00346 Pi 
H00350 P 
H00390 M 
H00392 
H00394 
H00396 
H00397 


itile 256K RAM. 720K 

mie 256K RAM, 720K, Colour/mouse 

itile 51 2K RAM, 720K, Colour/moose 

Mouse (nero per portatile) 

I - 256K RAM. 31 5K senta monitor 

- 256K RAM. 630K - sema monitor 

1 256K RAM. 1440K senta monitor 
256K RAM. 5 Mb sema monitor 
0 256K RAM, 10 Mb sema monitor 
b. Xi 10 (12~) 4 M1 180 l • H azienda 

- 51 2K RAM. 10 Mb - sema monitor 
te per PC. Xi. P7 


AMSTRAD (G.B.) 

DEI 

Ego Poni Nuon, 14 ■ 24100 Bergamo 


ic. (u.s.a.) 
i 

o, 75 - 20145 Milano 


APPLE COMPUTER (U.S.A.) 


- 128 K RAM - 1 minitloppy Integrato 


sh 128 K RAM • video • I microfloppy 
egrato da 400 K ■ mouse - Paint /Wrile 
sii SI 2 K RAM - video - 1 minitloppy integrato da 400 K 


2.648.250 
2.821.500 
3.036.000 
3.298.350 

3.572.250 
5.898.750 

6.542.250 


2.648.250 
2.821.500 
3.036.000 
3.298.350 

3.572.250 
5.898.750 
6.542250 


AQUARIUS 

Aoque trJ. 

Vii 5. Dillo, IB/1 1 - 50429 Finme 

Computer Aquarius 1 - 4K RAM 

199000 

Aquarius printer 

274000 

Data Recorder 

140.000 

4K RAM Eapansion 

43000 

16K RAM Expansion 

106.000 

32K RAM Expansion 

172.000 


239.000 

Mimexpander (include anche due joystick) 

144.000 

Cartucce giochi 

da 40.000 a 87 000 

Cartucce Filatone - Fintone Ext. Basic 

172.000 

Cartucce Logo Aquarius 

172 000 

BARCO 


TELAV Inlernational 


Vii L Di Vinci 43 - 20090 Trenino S.N. IMI) 


Monitor 16" OCD 1640 

1.071.000 

Monitor 22" OCD 2240 a colori 

1.257000 

Monitor 27" DC0 2740 a colori 

1.367.000 

BASF 


Olla Base Sistemi srl 


Via Don Grillanti. 2 ■ 21047 Saronno (VA) 


7int - 4R k RAM marrhinl tlav» 

6.000.000 

7120 ■ 64 K RAM. 3 minitloppy da 163 KB 

8000.000 

7125 - 64 K RAM. 3 minitloppy da 320 KB 

8.900.000 

7130 64 K RAM. disco 5 MB^mmilloppy 400 KB 

11.400 000 

7161 Modulo aggiuntivo disco 5 MB 5" 

3.800.000 

Interfaccia seriale RS232 aggiuntiva 

750.000 

6104B floppy disk drive 8" doppia laccio 

1 049.660 

610551 floppy disk drive 8" doppia laccia Slim 

1 025.480 

6128 lloppy disk drive 48 TPI doppia laccia Siile 

443.920 

6138 lloppy disk drive 5,25" doppia laccia Stiro 

532580 

6185 Drive 5.25" Winchester 

2.048.480 

6188 5.25 Winchester 10Mb Slim 

1.664.700 

6238 Basi lloppy disk dnve doppio 5,25" 

1.036.640 

CALCOMP (USA) 


Calcomp S.p.A. 


Palano F1-20090 Milanolion Assago (MI) 


Plotter M84 (8 penne. A4) 

2.850000 

Plotter 81 (8 penne, A3) 

6.950.000 

Plotter 1042 (Dualmode . A0) 

19.110.000 

Plotter 1043 (Foglio singolo, A0) 

19 110000 

Plotter 1044 (Dual mode. A0| 

27.105.000 

1 8 = 1950 lire 


CANON 


Canon llalia SpA. - Via M'Industria 13 - 37012 Bussoleogo IVO) 



Canon X07 portatile con display ine. programmi in basic - microsoit da 
8K RAM a 24KRAM da 20KR0M a 40KR0M programmi su 
schede • Interi. RS 232 - parallela - Comp. Centronii * 1 plotter 4 


1300 2*5' floppy disk drive 
1330 2*0" floppy disk drive 
A 1350 10 Mb Hard drsk * 5' f 


A-1210 Si , 

A- 1250 MATRIX PRINTE 156 b 
A 1011 1(0 E: 



A 1020 128 Kb RAM 
A-1021 256 Kb RAM 
A-1022 384 Kb RAM 
A-1001 RAM Chip 128K 
A-1002 Clock Sol 
A-1004 32 Kb VIDEO RAM 
A-1100 Poinling Oovice 

Ca ssella colore per A-1210 
B Cassetta inchioslro nera por A-1210 


a. 138 - 20158 Milana 


FP-1035 

FP-1083 

FP-1021 

FP-1011 


100 cps. 80 col. grafica 
160 cps. 80 col. grafica 
le 100 cps 132 col grafica 


espansione 8K RAM 
interfaccia RS 232C 
cavo per RS 232C 
disk drive da 70 KB 


Tetan s.r.l. - Via Matteo Civilali 75 - 20148 Mi 


CENTRONICS DATA COMPUTER CORP. (U.S.A.) 

Centronics Osta Computai Italia SpA. 

Via Achilie Brandi IO - 20093 Cotogno Monzese ( MI) 

GLP stampante 50 cps. 


353 ASF (1 caricatore) 


358 ASF (1 caricatore) 
LW 400 
IW 800 


2.850.000 

5.700.000 

7.500.000 

1.490.000 

1.890.000 

2.280.000 
250.000 
250.000 
250.000 

250.000 

575.000 

990.000 
1.385.000 

450.000 

160.000 

250.000 

125.000 

33.000 

19.000 


1.129.000 

1.311.000 

422.000 

1.263.000 

2.187.000 

3.700.000 

405.000 

73.000 

874.000 

182.000 

960.000 

1.400.000 
1 680.000 

675.000 

45.000 

115.000 

129.000 

69.000 

874.000 

440.000 
80.000 


600.000 

1 . 100.000 

1.550.000 

170.000 

3.800.000 

4.200.000 

5.700.000 

900.000 

6.000 000 
7.000.000 


16.000.000 

31 .000. 000 

38.000. 000 


CHALKBOARO 




Via Filippo Oppi. 19 - 20131 Miteno 


Power Pad Tavoletta grafica per Apple - Commodore 64 - Atari 

320.000 

Power Pad Tavoletta grafica per Commodore 64 - Alari 

300.000 

COLUMBIA Data Products Ine. (USA) 


lledra 3S Spa — Viale Cinzia. 18 - 20154 Miano 


Exp. 256 K RAM 

1 699.000 

Scheda 2-80 CP/M 

1.130.000 

Interi, monitor bn/colori RGB 

712000 

Co-processor aritmetico 8087 

940.000 

Interi, doppia RS-232C asincrona/sincrona 

428000 

Tastiera con tasti luntione e tasi, numerico 

428.000 

COINTREAU (Hong Kong) 


JCTSCT 


Via di Torrerecchie 3/f 00168 Roma 


Modem phone. modem con telefono integrato 300/1200 Baud 

398.000 

Joy Stick prolessionale per Apple 

120000 

Joy Stick per Commodore auto lite 5 pulsanti 

30.000 

Mouse grafico 

140000 

Registratore per Commodore 

40.000 

Scheda Madre per Apple 

450.000 

A01IN II 

780000 

Scheda scientifica ed mdostnale 2 canali 12 Bit - Converlitore da 


digitale ad analogico con out put simultaneo 

1 620000 

Scheda scientifica ed industriale - Sistema di acquisàiom dati veloce 


8 Canali di input, differenziati Aulo-rangmg e last longing 


■*" 

1.850.000 

COMMODORE (U.S.A.) 


Commodore Italiana sri 


Via FM Bracchi. 48 - 20092 Cmisalh Balsamo IMI) 


VIC-20 

199.000 

1210 espansione 3 K RAM 

49000 

1110 espansione 8 K RAM 

75000 

1111 espansione 16 K RAM 

125000 

1211 M 3 K Super Exp 

75.000 

1212 Programmerà Aid 

47500 

1213 Mach language Monitor 

47500 

1214 Smletinalore vocale 

176.000 

4011 VIC-Rel (per controllo Relè) 

95000 

4012 VIC Switch (per collegaie fino a 16 VICI 

226000 

2011 VIC-STAT cartuccia 

95000 

2012 VIC-GRAPH cartuccia 

95.000 

TI Interfaccia IEEE 488 per VIC 

175.000 

T3 Interfaccia Centronics per VIC 

116.000 

Commodore 16 16KB RAM 

245000 

C8M/64 CPU 64K RAM 

625000 

64 Esecutive (sistema a valigetta con video 5" e mmitloppy) 

2 350000 

Cartuccia e sistema operativo CP/M per 64 

125.000 

T2 Interfaccia IEEE 488 per 64 

175.000 

Commodore Plus 4 64K RAM 

975.000 

Commodore 8296 128K RAM 

1 995000 

1530 registratore a cassette 

120000 

1541 mmitloppy 170 K 

630 000 

1601 Monitor monocromatico ir 

285 000 

1702 Monitor a colon 14' con audio 

690000 

MPS 801 Stampante 84.50 Cps 

515 000 

MPS 802 Stampante 80 Cps 

645.000 

MPS 803 Stampante bidirezionale 60 cps 80 col 

595000 

MCS 801 Stampante ad aghi a colori 

995.000 

DDS 1101 Stampante a margherita 

1 195 000 

1520 Stampante plottante a 4 colori 

375.000 

1311 Joy Stick per Vie e 64 

13.500 


1312 Paddle per Vie e 64 



on microprocessore 80/80 grafici colore 128*128 completo di 
monitor RGB con 1 floppy 5' 102K 
Floppy 8" aggiuntivo 

Med. Léonard monitor 14' 8 colorì ♦ drive 8' * stampante 
Compucolor Esecutive 16K con floppy 92K 

I COMPUTER COMPANY 

Computer Cooptai s t s 

Vit Sto Giacomo. 3! - 80133 Napoli - Tel. 081/310487-324788 

IO 64 K RAM 1 MB 
TIN 200 64 K RAM-2 MB 
TIN 604 64 K RAM -4 M8 
TIN 610 64 K RAM-(IOMIMMb) 

TIN 620 64 K RAM-(20Mb*1Mb) 

1 T1N 630 64 K RAM (30Mb<Mb) 

Unità a floppy disk 1 Mb 
' ' 2 Mb 

or TIN 64 K (terminale intefligenle) 


11 . 000.000 

12.300.000 

15.900.000 

18.500.000 

22.150.000 

25.560.000 

2.750.000 

3.200.000 

6.400.000 

495.000 

950.000 


Hand Disk PHOENX 

PHOENX 5 5Mb - 3 sistemi operativi (Dos - CP/M ■ Pascal) - 
interfaccia per APPLE e compatibili 
PHOENX 10 Come Mod. 5 con 10Mb 
PHOENX 10/PC ■ Come Mod. 10 - per IBM Personal Computer 
PHOENX 15 - come 5 con 15Mb 


RAM - 2 floppy 5.535 
■ 1 floppy ’ hard disk 21 M 
RAM - 1 floppy * hard disk 21M 




2.270.500 

4.075.500 

446.500 

902.500 

1358.500 

8.407.500 

10.516.500 

15.988.500 
17.879.000 

9.889.500 

12.625.500 

17.879.000 

19.988.000 

14.725.000 

16.834.000 

19.988.000 

22.097.000 

2.517.500 


0MNIDRIVE (Unità a disco con integrato il Disk Server per la re 
- 5.5 MB lormattali 

— 11.1 MB lormatlati 

— 16.6 MB formallali 

— 45.1 MB lormattali 
TRANSP0RTER 


5270.000 

6.750.000 

8.490.000 

13.270.000 

1.319.000 


fXT, APPLE II. HE. III. DIGITAL RAINBOW 100 TEXAS TI PROF. ZENITH Z-100 
( 

de da 100 e 200 MB ad accesso anche RAN00M 
ile (da acquistare a parte) 

ikup per IBM XT se video cassette (da acquistare a parte) 

IET per IBM-XT 
NCEPT 


(ET MIRR0R 
R IBM XT 


6.290.000 

2.637.000 

1.319.000 

2.637.000 


I COSMIC (Italia) 

Cesoie s ci 

Largo Luigi AolooeOi. 2 - 00145 Hi ma 

Rack Quasar 1/2-1 drive 8' doppia faccia per Apple 2.070.000 

I Rack Quasar 2/1 - 2 drive 8" singola taccia per Apple 2.600.000 

Rack Quasar 2/2 - 2 drive 8' doppia faccia per Apple 3.300.000 

GALAXY cene 70 

id. 72 64K RAM » video 24*80 • 2 floppy S.0. per 1 Mb 6.950.000 

GALAXY serie 80 

id. 82 64K RAM * video 24*80 « 2 floppy D.D. per 1Mb 7.950.000 

Mod. 82/M2 128K RAM comp. MP/M per 2 utenti 8.750.000 

GALAXY serie 380 

Mod. 382 64K RAM * video 24*80 + 1 disco smeli da 8 Mb * 1 floppy da 1 Mh 10.300.000 

Mod. 382/M2 128K RAM Comp. MP/M per 2 utenti 11.100.000 

Mod 382/M4 256 RAM Comp. MP/M per 4 utenti 11.400.000 

GALAXY serie 480 

d. 480 64K RAM * video 24*80 * 1 disco winch da 10 Mb * 1 floppy da 1 Mb 10 900 000 
| GALAXY sene 880 

Mod 882 • 1 Floppy da 1 MB + 64K Ram ♦ Video 24*80 t disco da 20 MB 12.200.000 
i Terminale aggiuntivo per Mod./M2-M4 1.800.000 


DATA SOUTH (U.S.A.) 

Segi 

Via Timaro. 12 - 20124 Milano 

O.S. 180 Stampante seriale 180 cps grafica buffer 2K 
D.S. 220 220 CPS trascinamento catta frizione e trattore 
Nota: 1 SI 900 lire. 

D.D.P. (Italia) 

OOP sjJ OIGITAL DATA PRODUCTS 
Largo Migliata. 16 - 10143 Torino 

D700 Sottosistema per Winchester 638 Mb per Apple II 
MXP Mnllipleser lino a 4 APPLE 

D705 Sottosistema Winchester 638 Mb DEC QBUS RT11 e RSX11M 
D710 Sottosistema Winchester 12.76 Mb DEC QBUS RIT11 e RSX11M 
D510 Drive aggiuntivo 12.76 Mb per D710 
Nota: prezzi legati 8d un cambio 1S = 1 500*2% 

DIABLO SYSTEM INC. (U.S.A.) 

Va Tauro. 12 - 20124 Milano 
630 API stampante a margherita 40 CPS 

630 ECS/PC stamp. a margherita 40 CPS con interi, por IBM Personal Computer 
630 ECS stamp. a margherita 40 CPS - 400 caratteri in combinazione-buffer 1 344 byte 
Nota 1 S lire 1900 

DIGITAL EQUIPMENT 

Digital Egoiptnanl S p A 

V.le Fulvio Tosti ang. V. Corti 105 - 20092 CiniseUo Balsamo (MI) 

RAINBOW PC 100 

128 Kb RAM. Minidisco duale 2*400 Kb, Monitor Monocr. 80/132 CL * tastiera. 

CP/M * MS-DOS 
RAINBOW PCI 00 PLUS 

Stesso modello precedente ‘ Winchester 10 Mb 
PROFESSIONAL 350 

512 Kb RAM minidisco duale 2*400 Kb. Monitor Monocr. 80/132 Cl • tastiera. 

scheda grafica, Floaling Pomt. P/0S Multi tasking 
PROFESSIONAL 350 • W. 

Stesso modello precedente * Winchester 10 Mb 
DECMATE III package 


4500000 
1 200.000 

4800.000 

5.300.000 
3.000.000 


6.175.000 

7.505.000 

7.030.000 


6 . 666.100 

11.835.100 




FACIT AB (Svezia) 

Osi SpA. 

Via Imperli. 2 - 20142 Milano 

6500 160 CPU. 32 Kb ROM + 32 Kb RAM. laniera, video 15" 80»24, 2 
minilloppy da 160 Kb 

6500-360 Come 6500-160 ma con 2 minilloppy da 320 Kb 
6500-640 Come 6500 160 ma con 2 minilloppy da 640 Kb 
6500-SM Come 6500-160 ma con 1 minilloppy da 640 Kb e hard disc 5 Mb 
6500-10 M Come 6500-160 ma con 1 minilloppy da 640 Kb e baid disc 10 Mb 
6500 1 60C CPU. 32 Kb ROM • 32 Kb RAM, lasliera. video 14" colori 40*24 2 
nnilloppy da 160 Kb 

6541 Scheda High Resolution per applicazioni grafiche 

6545 Scheda di memoria 32 Kb RAM 

6546-1 Scheda di memoria 32 Kb RAM * CP/M 

6559 Olive cassette audio 

SII Stampante a matrice 80 colonne 100 cps 

S31 Stampante a matrice 132 colonne 100 cps 

0620 Stampante a margherita DIARIO 620 132 colonne 20 cps 

GENIUS COMPUTER s.r.l. 

Genius Competei s.eJ. 

Via G. Coma Pellegiini 24 ■ 25100 - Oiescia 

GC 3000 Z80A a 4MHr 80KB 2 minifloppy 1.6 MB lormattati - Video 


GNT (Danimarca) 

Tele om s ii 

Via Malreo Cititeli. 75 - 20148 Milano 

Mod 3601/50 (perforatore di banda, interlaccia parallela) 

Mod 3601/75 perforatore di banda lelei interlaccia seriale e parallela cor 
convertitore ASCII e BAUDOT 75 cps 

GRAPHTEC (ex Watanabe) 

SPH competei Sii 

Vìa Giocosa. 3 20127 Milano 

MP1000-21 MIPL0T 6 penne. 15 ca/sec int 8 bit parallela 
MP1000-01 MIPL0T 6 penne. 15 ca/sec ini. RS232-C 
MP1000-1 1 MIPLOT 6 penne. 15 ca/sec int. IEEE-488 
MP1000-31 MIPLOT 6 penne. 15 ca/sec int. 8 bit par. DX 
OT 1000 digitalizzatore formato A3 
WX 4731 plotvrriler a tamburo 4 penne 
PC 2621 - interfaccia parallela 8 bit 

FP 5301-01 Personal plotter 10 penne formato A3-45 CP/M * RS232C. 

FP 5301-11 come 5301-01+IEEE 488 

FP 5301-21 - come 5301-01 * Interfaccia 8 Bit parallela 

PC 2601 - interlaccia RS-232C 

PC 2611 - interlaccia HP-IB IEEE488 

PC 2602 interfaccia 20 m A Currenl Loop 

ireni per 1 Yen = 7.3 lite 

GRUNDY (GB) 

Mictoslai s.t.1. 

Via Caglialo, 17 - 20125 Milano 


5.360.000 

5.760.000 

6.260.000 

12.460.000 

13.960.000 

5.100.000 

700.000 

500.000 

700.000 

320.000 
1.050000 

1.280.000 
3.050.000 


11.770.000 

12.630.000 

13.540.000 

14.410.000 


2.350.000 

3.375.000 


1.906.000 

2.005.000 

2.117.000 

2.421.000 

1.889.000 

3.674.000 

5.001.000 

6.547.000 

6.761.000 

6.305.000 
969.000 

1 103.000 

1.169.000 


Digito GTCO mod. M07 lormato 6*6 con stilo 
Digito GTCO mod 0P5 lormato 6*6 con cursore 
Oigito GTCO mod M07 lormato 12*12 con stilo 
Digito GTCO mod. M07 lormato 12*12 con cursore 
Software per IBM PC 
Alimentatore 12V-275 mA 
Cavo per collegamento 
Nota: prezzo pet dollaro a l 1700 


HEWLETT PACKARD (U S A.) 

Hewlett Padani Italiana 
Via G. Di Villoiìo, 9 
20053 Cemosco sol Naviglio IMI) 


il Computer HP-150B 45610BZ 
18 con dischi 3.5" 91220 - 45650BZ 
18 con disco 14.5M 9133D - 45660BZ 
ole termica per HP-150 - 2674A 



Master singolo 1200K - opz 010 


isco rigido da 4 8M Byte 

>n Hoppy da 270K |3") - 9133V 

isco rigido da 14.5M Byte 

tn floppy da 7I0K (3.5") 91330 

isco rigido da 14.5M Byte 

in floppy da 270K (3"| - 9133XV 

isco rigido da 14.5M Byte 91340 

lisco rigido da 14.5M Byte - 9134XV 

ottosistema a nastro da per backup HP-150 9144A 

loller lormato A4 a due penne - 7470A 

lolter lormato A3 a sei penne - 7475A 

avolena gralica- 9111A 

ca 80 col/150 cps 
I 80 car/sec, 829058 


80 Col/160 cp 



RS232C 20cps • 2602A 
Interfaccia HP-IB - opz 046 
Trascinatore di logli - 26020A 
Stampante termica 
80 coL/120 cps - 2671 A 


1.632.000 

1.810.000 

2.065.000 

2252.000 
435000 
212.000 
68.000 


8.715000 

4.337000 

7.602.000 
6.852000 

6.923.000 

12150.000 
773.000 

11161 

7.108000 


3 178000 
2409000 
2018000 

2.564.000 

I 827.000 

5.663.000 
3882000 

3.040.000 

14.502000 

II 194.000 
5.224 000 


8459000 

8495000 

7.683.000 
7673000 

7964.000 

2.723.000 
4709000 

5.555.000 
1 233.000 

2.089.000 
251.000 

2005.000 

8860000 



Digito GTCO mod 0P5 11*11 (tavoletta grafica) 


3570.000 




"IL PIÙ VENDI 


WORDSTAR 
DAI PROFEi 



r 0 NEL MONDO’’ 

PROGRAMMI DI SCRITTURA. 
SIONISTI DEL SOFTWARE. 


Wordstar è il programma di scrittu- 
ra più venduto nel mondo: il più co- 
nosciuto, il più collaudato, il più si- 
curo e il più richiesto. 

Wordstar 3.40 (la nuova edizione che esalta tutte le 
caratteristiche di un computer a 1 6 bit) è potente, su 
misura, semplice da installare. E' un programma no- 
toriamente facile da usare. Oggi poi comprende 
Wordstar Tutor, una serie di istruzioni “ 
su disco che permette di familiarizzare 
rapidamente con le sue caratteristiche. 

Wordstar è in italiano, e più perfezionato. 

Le opzioni CorrectStar, Mailmerge e Sta- 
rindex lo rendono il sistema di wordpro- 



cessing più completo ed efficiente 
oggi inTtalia. Bestseller della Micro- 
Pro (una casa che ha sempre / 
fatto solo software, iniziando 
prima degli altri), Wordstar 3.40 è parte di una , 
famiglia di programmi in costante crescita: / . 

la famiglia MicroPro; programmi potenti e 
sofisticati per una maggiore produttività, y 

il cui denominatore è l'estrema fa- 
cilità d’uso e la possibilità di es- / «, 

sere totalmente integrati tra jf 

loro. MicroPro. / , 

MicroPro S,r ien * / '*** ' “ 








a manica di punii ■ 136 colonna - 120 cps 
i - 64KB RAM - da 32 a 66 KB ROM laniera allanumerlca. 
fiala RS232C - Inlerfaccia floppy 8' e 6'1f4 


lì con 2 minilloppy 5"1/4 doppia faccia, doppia dansilà. 640K6 fon 
lì aggiunlhra di 2 minilloppy da S'1/4 
lì con 2 floppy 8~ doppia faccia: doppia densili, 2MB formattali 
lì aggiuntiva di 2 floppy da V 

tonai Computer Portatile - 8085 CMOS - 16 KB RAM - 32 KB ROM 
y a cristalli liquidi 40 • 8 


n Pai E/2 - 20094 Assago (Ih 


Microline 82 A 80 col. 120 CPS 
Micioline 83 A 132 col. 120 CPS 
Microline 84 132 col. 200 CPS Parallela 
Microline 92 80 col. 160 CPS Parallela 
Microline 84 132 Col. 200 CPS Seriale 
Microline 92 80 Col. 160 CPS Seriale 
Microline 93 132 Col. 160 CPS Parallela 
Microlme 93 132 col. 160 CPS Seriale 
OKI 2350 132 col. 350 CPS 
OKI 2410 132 col. 350 CPS NLQ 


M 10 - 24K RAM 

M 20 ST versione billoppy « exp RAM 160K « stampante PR 1450 
M24 billoppy 256K RAM ■ video 
M21 come 20ST ma con 256K RAM Video monocromo 
PUÒ microplotter per MIO 


MC10 ac 
Espansione 8K per MIO 


er MIO 


Mod. ESW 102 RO Stamp a margherita 17 cps bid. boiler 4K 
Mod. ESW 103 KSR Stampante a margherita 17 cps bid. buffer 4K « 
Mod ESW 3000 RO Stampante a margherita 35 cps bid Buller 4K 



ta UNIX System III 
C501 20/51 2K/40MB/5 porte. Terminale Onyi. licenza UNIX System III 
C501 2V1 /51 2K/21 MB/5 porle. Terminale Onyx. licenza UNIX Systemlll 


1.460.000 

2.235.000 

1.185.000 

2.435.000 
1 375.000 

1.770.000 
1 960.000 

5.050.000 

5.420.000 



31 .000.000 

31.000. 000 

36.500.000 

37.500.000 

43.000. 000 


PHILIPS S.p.A. 

Philips S.p.A. 

Piana 11/ Honmbte. 3 - 20124 Milana 


!K RAM - 32K ROM 32 spi 


te 80 col. V W 0020 
te 40 col. V W 0010 
ite W 0040 parallela Centronics 


510.000 
570000 

180.000 
450000 
260.000 

55.000 

72.000 

100.000 
100.000 
90.000 

la 20.000 a 50.000 


P2500/M CPU 'Monitor grafico 12' 64 Kb RA 


*2 ni 


py da 304 Kb ' 


leCP/M 


P2500/M OS come P 2500/M con 2 minilloppy da 604 Kb 
P2010 Portatile con 2 minifloppy da 160 KB ♦ CP/M ♦ Wordstar e Calcstat 
P2012 Portatile con 2 minilloppy da 640 KB ' CP/M • Wordstar e Calcstat 
P2010-2 Portatile con 2 minilloppy da 160 K8 ' CP/M e extended IEI 
P2145 disco fisso 10 Mb 
P2092 Scheda di Esp. di memoria 256Kb 
P2091 Scheda IEEE 488 - Comprensiva di IEEE 488 tu 
P2145 Disco fisso da 10Mb lormattati 
PII 80 Stampante 132 Col 160CPS 


5.750.000 

6.150.000 

3.650.000 

4.600.000 

4.000. 000 

3.450.000 

850.000 

800.000 
3.450.000 

2 . 000 . 000 


P 2010 Portatile con videe 9' e 
Con CP/M. TESI (ini. retziov 
Con CP/M, Scheda IEE 488 
P 2012 Portatile con video 9' e 
Con CP/M. TESI (mi retnev 
Con CP/M. TESI. Wordstar. 


py 5" da 640 Kb cadauno. 
rdStar. CalcStar 
arge. CalcStar, InfoStar 


4.600.000 

4.950.000 

4.990.000 

850.000 
600000 

800.000 


ONSULT Scientifica 

due Tom. 65 - 00146 Home 


B: 2 drive 500 KB ' video 


B: 2 di 


dr. 500 K6 • M disk 5.8 MB ' 
PCS 84003/8: 1 di. 1 MB ' H. disk 5.8 MB • v 
PCS 84004/B: 1 di. 500 K8 * H.disk 10 MB • v 

PCS 84005/8: 1 di. 1 MB • H.disk 10 MB * vid 

PCS 84006/8: 1 di 1 MB * H.disk 20 MB * vi* 

PCS 84007/B: 1 dr. 1 MB • H.disk 29 MB • vi* 

PCS 84000/C: 2 drive 500 K8 • video 
PCS 84001/C: 2 drive 1 MB * video 
PCS 84002/C: 1 dr. 500 K8 t H.disk 5.8 MB • ì 


6.600.000 
8 . 1 00.000 
10.800.000 
11 100.000 
11 400.000 
12 . 100.000 

15500.000 
18 500.000 

8900.000 

10.400.000 
13 100000 




180 



ROBOT1CS LTD. 


1. CHANNEL ISLANDS 


HOME COMPUTER 
INGLESI 


Vendita per corrispondenza a prezzi “TAX 
FREE” in lire sterline, i più bassi anche in 
Inghilterra. 


Commodore 64 
Commodore C2N Cass-Data 
Commodore 1541 Disc Driver 
Commodore CI 6 Pack 
Commdore Plus 4 
Sinclair Spectrum 48K 
Sinclair Spectrum Plus 
Sinclair QL 

Sinclair Expansion System 

(Microdrive 6P Interfaccia 1+4 software) 


* 180.00 
& 45.00 
& 200.00 
* 135.00 
«£ 275.00 
& 120.00 
& 165.00 
& 360.00 
«£ 95.00 


I prezzi sono comprensivi delle spese di spedizione e 
assicurazione 

Tutti i prodotti sono spediti per via aerea e sono 
assicurati. 

Tempi di spedizione: 21 giorni dal ricevimento del- 
l’ordine. 

Eventuali sostituzioni di materiali sbagliati verran- 
no effettuate entro 10 giorni dal ricevimento della 
merce. 

II pagamento dovrà essere effettuato in forma antici- 
pata su c/c Robotics Ltd, Nro 70804304, BARCLAYS 
BANK PLC, P.O. Box 41, St Peter Port Branch, Guer- 
nsey, Channel Islands, oppure con assegno “EURO- 
CHEQUE" intestato a Robotics Ltd. 


I Speditemi gli articoli sotto indicati a: 

| Nome: 

-Indirizzo: ...... 

m Codice postale e città 

I Articolo: Quantità 

| Articolo: Quantità: 

- Dettagli di pagamento: 


Inviare a: ROBOTICS LTD, 16 Hew Street, St Peter Port, Guemsey, 

■ Channel Islands, United Kingdom. 

k J 


Registratore CCR 81 
Color 16K Basic 
Color 1GK Eitended Basic 
Colai 32K Extended Basic 
16K RAM Color 
32K RAM Color 
Joy Stick 

Olive 0 New Color 
Drive 1 New Color 
Mod 4 I6K 
td. 4 64K 1 Drive 

Mod 4 128K 2 Drive con CP/M Plus 
Mod 4 64K 2 drive portatile 
id. 4 High resolution 
Hard Disk SMB Mod. 3/4 Prinary 
Hard Disk 5MB Mod. 3/4 Second. 

Tandy 2000 128K RAM 2MB Comp IBM 
Tandy 2000 356Kb * HO. 10MB 
Menomine per TANDY 2000 
Color monitor per TANDY 2000 
Exp. a 16 bit per MOD. 2 
d 12 80 K 1 Drive 
Mod. 12 80K 2 Drive 
Drive 3 Slim Bay 

4 Slim Bay 
Mod. 16B 256K H.0. 15 Mb con Xenii 
Secondar» H.O 15 Mb 
12BK RAM CHIP Mod 1B 
1 28K RAM Board Mod. 1G 
Scheda gralica 
Drive 3 Slim Bay 
Drive 3 e 4 Slim Bay 
DT-1 Terminal 
SNA/3270 
BIS-3780 
8IS-3270 
CLEO • 3270 


Terminale video mod, VT 4100 
Temimele video mod. VT 4200 BASE 

Terminale video mod. VT 4200 S Emulazioni Esprit ll/ADM34/Viewpoinl/DL80 
Terminale video mod. VT 4200 B Emulaiioni TVI 912B/TVI 920/TVI 925 
Terminale video mod VT 4200 C Emulaiioni ANSI 3.03/VT52/VTI32 LIKE 
Terminale video mod. VT 4200 D Emulaiioni ADM 3A/Viewpoint/HZ1500/VT52 


935.000 
1 . 020.000 
1 105.000 
1.088.000 


■me 140cps 80 col Bidirei gralica) 
iute 140cps 156 col. Bidirei. grafica) 

* Per stampante Apple II) 

TELCOM 

Tekom u.L 

Va Minio Cmali 75 - 20148 Milano 

Stampante TELCOM CP 80P - 80 col - 80 cfsec. (I/F parallela) 
Stampante TELCOM CP 80S ■ 80 col 80 c/sec (l/F seriale) 
Interfacce per adattamento stampami YUKI-MITSUI-CP80 

Interfaccia adapter per Apple II Ile e compatibili 


117.500 

1.153.000 

1.620.000 
174.800 


TC IFCC001 Buffet 6Kb esterno CTX • CTX 

250000 

TC IFHP-IB Interfaccia IEEE488 (HP-IB) - CTX 

160000 

TC IFSC001 Interfaccia seriale esterna RS232C 20mA CTX (8Db) 

450000 

TC IFSC002 come sopra (2Kb) 

300.000 

TC IFC64 Interi. paralL CTX per Commodore. 64 e VIC 20 

105.000 

TC IF2CTX Sdoppiatole d'interfaccia CTX 

195.000 

TC IFSINCL Interfaccia CTX per SPECT 16/48 

120.000 

Nota: preso per dollaro a L. 1.600 


TOBIA (Italia) 


Ila! SUDA 


V.le Cesili Pavese. 45 ■ 00144 Roma 


intìnti TitRta rfta i n <r it« ?mi kr 

3.480.000 

106C1 TOBIA BETA 1 II. 5" da 1MB 

4 780000 

106C2 TOBIA BETA 2 II. 5" da 2MB 

5.900000 

109C1 TOBIA GAMMA 1 5" da 1MB cias. 

6.000.000 

109C2 TOBIA GAMMA 2 0 5' da 1 MB tot. 

6.900.000 

109C3 TOBIA GAMMA 2 0. 5" da 3.2 MB tot 

7.500.000 

I09C4 TOBIA GAMMA 2 II. 8" da 3,2 MB tol 

7900000 

HOC TOBIA DELTA con disco 5*5 MB 

11.900.000 

Controller OMTI 20C 

816.000 

Disco Winchester 65 MB 

810.000 

NDR 505 sottosislema NDR 5*5 MB per IBM PC 

5.900000 


4.500.000 

TOSHIBA (Giappone) 


libei S p A 


Via Madonna del Riposo. 127 - 00165 Roma 


81540 Tastiera con CPU 64K RAM C/INTERF 

1 350.000 

81542 Video verde 640-200 bots grafico 12“ • 80 car -25 linee 

54 8 000 

81543 Video colori 640-200 bots grafico 14' 800 car *25 linee 

1 700.000 

81544 Unità C/2 FDD - 560Kb«2 

2250000 

81547 Stampante gralica 80 col. 125 cps 

1.550.000 

81550 Stampante grafica - 132 col. 125 cps 

1 880 000 

81545 Cavo stampante 

95.000 

81546 Cavo Interi. RS 232/C 

95.000 

81548 Rom Pack 0A BASIC 

445 000 

81553 Ram Pack 16 Kb 

445.000 

81541 Cavo Alimentazione A/C 

10000 

82577 Nastro stampante 

25.000 

82404 Sili. Op. CP/M 

200.000 

82406 Sist Op • 0A/BASIC DISK 

120000 

82406 Sist Op. T/BASIC - DISK 

120.000 

81513 • Personal Computer T300 System 1 

3.850.000 

81501 Tastiera * CPU 192 Kb * Unità 2 F0 0 640 Kb«2*inler1 

4 600 000 

81511 Hard Disk 10 MB slim Ime 

3.850000 

81506 Video verde - 12" - 640-500 bots • 80 chrs-25 linee 

450.000 

81505 Video colori 1-14" 640-500 bots 80 chrs-25 linee 8 colon 

1.440.000 

81503 Memoria addinonale 64Kb 

230000 

81515 Adattatore per comunicami 

485.000 

81518 Data/Time clock 

160.000 

81507 Adattatore grafico t 640-500 per monocrnm (scheda) 

460.000 

81504 Adattatore grafico 2 -8 colori in Add Adatt Gral. 1 

850.000 

81516 - Adattatore Paletta per Video Colori n' 2 256 Colori 

870000 

81547 Stampante 80 col. 125 cps - grafica 

1150 000 

81550 Stampante 132 col. 125 cps grafica 

1 880 000 

82410 Sisl Op CP/M 86 C/CBASIC ■ 86 

565000 

82414 Sist Op MS-DOS. 20 C/T BASIC 16 

120 000 

TRIUMPH ADLER (Germania) 


Jmmph Adlei Italia SpA Viale Monta. 201 - 20126 Milano 


Alphatronic PC 

1.050000 

la unità lloppy por PC 

1 000.000 

2a unità lloppy per PC 

835000 

Video per PC 

500000 

Alphatronic P2U 64K RAM • 16 ROM (64K utente) unità video 1920 


caratteri e 2 unità minifloppy doppia leccia (2-320 KB) 

4.200.000 

Interfaccia IEC Bus 

396.000 

Interfaccia Parallela UPI 8606 

585000 


Orologio Reai Time EZU 8607 
Full-Giaphic CRT4A 
FiiD-Graphic Terni 1 


P40 to 


i P4 * 


■e P30 


re 80/88 < 64Kb * 128 Kb RAM 


Alphalronic P3 come P2 U + 2 minifloppy da I Mb 
Alphalronic P4 come P3 * 1 disco Winchester da 5 MI 
IH 80 stampante ad aghi 80 cps 
IH 136 stampante ad aghi 120 cps 
ORS 250 stampante ad aghi 250 cps 
TRD 170 stampante a margherita 17 cps 
GABI 8008 

Interfaccia parallela per Alphatronic PC e GABI 8D08 


Eco 2/7 come Eco 1 * Winche 
10 come Eco 2/7 con W 
Eco 2/16 come Eco 2/7 con W 
Eco 2/27 come Eco 2/7 con W 


VECT0R 4/00 IWS Intelligent Workstation per UNO 
IR 4/10 1 Minifloppy 630 Kb 
IR 4/20 2 Minifloppy (1.2 Mb) 

IR 4/30 Hard disk 5 Mb. Minifloppy 630 Kb 
IR 4/40 Hard disk 10 Mb. Minifloppy 630 Kb 
IR 4/60 Hard disk 36.6 Mb. Minifloppy 630 Kb 
VECTOR VSX 8/16 BIT Z80 8/8086 (BMHZ): 



VICTOR TECHNOLOGIES (U.S.A.) 

HA80EH ITALIA S.pA 

Milano fiori - Strido n‘ 7 Filino T3 30089 Fonano /M 


:tor 1 128K RAM 
rior 1A 256K RAM 
rtor 1B 256K RAM 
rki (portatile) 256K RAM 

* MT 180 l ♦ H. Azienda 

* MT 180 V + S.0, Concnrrenl 
IB - Completo - per V1/V1A 
*8 - Senza 0 M A - per V 18 
sporter board LAN 


e server 256K - 10 MB winch. - 1 A N 
irden 10 + 10 MB Victor - Aprico! 
HQ0155 Harden 5 * 5 MB Victor • Apricol 
H00018 Scheda Xebec controller 


175.000 
1.080.000 

1.400.000 

7.000. 000 

9.300.000 

6.460.000 

8.500.000 

1.450.000 

1.930.000 

3.300.000 

2 . 000 . 000 

805.000 

200.000 


9.500.000 

12 . 200.000 
12.800.000 

13.800.000 

14.800.000 


5.550.000 

6.650.000 

7.750.000 

10.650.000 

12.650.000 

21.700.000 


64 Kb. RAM. Scheda llashwriter. 


1.340.000 

4.500.000 


HD0D19 Scheda 0MA card 
H00021 Scheda espansione 128K - Victor 
H00022 Scheda espansione 384K - Victor 
H0D025 Scheda co processore Aritm. 8087 
H00044 Sistema CPM/80 


Drive per Mod. 2001 completo di controller 


1.075.000 

740.000 

1.980.000 

990.000 

1.350.000 


ih basic (TRS 80 comp.) 490.000 
ia parallela 990.000 

Rei 290*192 + 

560.000 

580.000 


Mnd. 9710 Sottosislema a dischi Winchester da 10 MByles 
enn adattatore Apple per DOS: CPM: Pascal: Prndns 
IBM PC 

Multibus per CMP-86 
OBus per emulazione RL02/01 
SI 00 

Mod. 9730T Sottosistema a dischi Winchester da 35 MBytes 
con adattatore Apple per 00S: CPM: Pescai: Prodos 
IBM PC 

MULTIBUS per CPM-86 
S-100 per CPM-80 
OBus per emulazione RL02/01 


XEROX 820 II ACL 64 Kb RAM. video 24*80. 2 minifloppy da 368 Kb (OS) 

XEROX 820 II ACL 64 Kb RAM. video 24*80. 2 floppy 8‘ do 600 Kb (SS) 

XEROX 820 II ACL 64 Kb RAM. video 24*80. 2 floppy 8" da 1200 Kb (DS) 

XEROX 820 II ACL 64 Kb RAM. video 24*80. 

1 floppy 8” da 1200 Kb * hard disk 10 Mh 
16/8 scheda aggiuntiva con CPU 16 bit e 128 Kb RAM 
0IABL0 630 stampante a margherita 40 cps 


ro CP/M 


tè programmi DIABL0 
py 8~ da 1200 Kb (OS) 

.1 floppy 8" da 1200 Kb. hard disk 10 Mb 
di lavoro aggiuntivi 


10 mod. 0651-02 (interi, seriale 
10 mod. 0651-11 (ini. parali. - 


+ ROM graf.) 
12 (ini. seriale ‘ ROM graf.) 
zzi per I yen 6.7 lire 


3.400.000 

3.400.000 

3.950.000 

4.990.000 

3.950.000 

13.550.000 

13.550.000 

14.100.000 

14.100.000 

14.990.000 


5.700.000 

6.700.000 

7.600.000 

10.500.000 

980.000 

4.750.000 
2800000 

300.000 

1.028.000 

680.000 

11.900.000 

16.800.000 
1.600.000 
3.000.000 


1.560.000 

1.660.000 

1.830.000 

1.930.000 


SCHEDE A MICROPROCESSORE 

A.S.EL. (Italia) 

AS.CL tri 

Vii Coniai mpem 17 - 70139 miao 

Amico 2000 montato 
Amico 2000 in kit 
Aumentatole 






T 


li Ti . 

NEWÌ 


L’unica rivista con cassetta per il tuo TI 99-4A 


...data found 

Tutti i mesi in edicola 


NEW SOFT Via Stefano Jacini n. 4 - 20121 MILANO - Tel. 02/807464 



MCmicracprnputer n, 38 - febbraio 1985 









S INC LAI R 

2X SPECTRVM 


MCmlcrocompuier n 38 - febbraio 1985 



puler per scambio idee e programmi. Rispondo i 
chiunque sia interessalo. Davide Aredi - Via Verba 
no 241 - 28100 Novara - Telefono (0321) 471 192. 

Si c aperto a Torino lo "Spritc computer club": la sui 
sede è in vìa Vagnone 3 (nei pressi di p.zza 
La sede è aperta il mercoledì dalle 1 7.30 alle 20.00 si 
ti interessano amicizia c computer vienici a trovare i 
potrai anche collaborare al bollettino dei club. 

Studente cerca possessori di Olivetti M 10 per scambio 
di programmi ed idee. Scrivere a Emilio Hirsch stra- 
da San Vito 60. 10133 Torino. 

Si c costituito il “Computer club C'iriè" per utenti 

sizione dei soci. Per informazioni scrivere a: Speran- 
za Pasquale - Loc. Vastalla. 80 - 10073 Ciriè (TO). 



Atariani. e finalmente nat 
to ai possessori dì com 
800XL ecc. Non siamo nc 


:e interessate a scopri- 
re tutte le possibilità di questo “personal". Scrivere 
inviando bolli * risposta a Atari User's Club. Via B. 
d'Alviano 29 - Milano. 

Disponendo di Un PC/1BM desidero contattare uten- 
ti di questo residenti in Milano per scambiare idee, 
informazioni c programmi. Se interessati rivolgersi a 
Riccardo. 021 4233024. 

Disponendo di IBM PC scambio esperienze c pro- 
grammi con chiunque sia interessato; rispondo a 
lutti. Idini Renato Via Europa n. 10 - 20028 San 
Vittore Olona (MI) - Tel. 0331/ 517717. 

È nato il Commodore Club della Bassa Bergamasca 

per scambio programmi e listali. Scrivere a Casella 
Postale 24058 Romano di Lombardia (BG). 




TI 99/4A - Desidero entrare in contatto con pro- 
grammatori esperti di TI Basic per scambi, consigli, 
idee, esperienze. Preferirei zona VR - MN o province 
vicine. Scrivere a Bruno Ruggiu - Via 1° maggio - 
37060 Bonferraro - VR 

Amici 64isti per qualche tempo ho interrotto i rap- 
porti di scambio con voi (causa acquisto Apple H/e) 
mi scuso con chi non ha avuto risposta. Ora ho di 


tronics? Contattatemi - Mellone Geom. Maurizio - 
Via Sabbionara 9- 36061 Bussano del Grappa (VI) - 
Tel. 0424/ 20015. 

64 per scambio informazioni, esperienze, program- 
mi. Dispongo oltre 300 programmi su disco. Cerco 
Back up nastro/disco. Telefonare alla sera allo 0445/ 
404863 o scrivere a Giorgio Pcllizzari - via 7 Martiri 
1 15 - 36078 Valdagno (VI). 


Tcxas-TI 99/4A - Ce 
bly Per scambio idee 
zona Vicenza - Tel. 0444/ 566587 


linguaggio / 


Per tutti i club ed utenti del C64! Siamo un Commo- 
dore Club, cambiamo, vendiamo, compriamo soft- 
ware. in particolare Vidcogames. Solo su cassetta. 
Scriveteci o telefonateci: Pannozzo Enzo - Via Sassa- 
ri III T.R.V oppure telefonateci in Sede: 0771/ 
501391. 04022 Fondi (LT). w» 


Annunci a pagamento di carattere commercia- 
te-speculativa fra privati e/o ditte ; vendita e 
realizzazione di materiali hardware e software, 
offerte varie di collaborazione e consulenze, ec- 
cetera. Allegare L. 30.000 (in assegno) per 
ogni annuncio. Vedere istruzioni e modulo a 
pag. 193. 

Non si accettano prenotazioni per più numeri, 
né per più di un annuncio sullo stesso numero. 
MCmicrocomputer si riserva il diritto di respin- 
gere, a suo insindacabile giudizio e senza spie- 
gazioni, qualsiasi annuncio dietro semplice re- 
stituzione della somma inviata. 

In particolare saranno respinte le offerte di ven- 
dita di copie palesemente contraffatte di soft- 
ware di produzione commerciale. 

Per motivi pratici, si prega di non lasciare co- 
municazioni o chiedere informazioni (telefoni- 
che o scritte) riguardanti gli annunci inviati. 

HP Series 80 Secure Control vendo potente 
programma binario che vi permetterà di riabi- 
litare i comandi LIST e STORE al di sopra di 
ogni sicura, tei. 06/6173327. 

Microdata SAS - la più vasta gamma profes- 
sionale di software italiano per lo Spectrum a 
prezzi competitivi. Programmi e listini presso 
qualificati rivenditori. Annunciamo con di- 
sponibilità immediata nuovo catalogo pro- 
grammi per Amstrad CP C64. Per informazio- 
ni: Via Tasso 29 - 10093 Collegno (TO). Tel. 
011/4112095. Cerchiamo qualificali agenti di 
vendita. 

Per Apple Ile, Ile, Il plus e Mac Intosh esistono 
numerosi programmi. Quanti di questi soddi- 
sfano pienamente le tue esigenze? Noi perso- 
nalizziamo i programmi di base adattandoli a 
qualsiasi esigenza, ne creiamo di nuovi su ri- 
chiesta. il tutto unito alla massima celerità e 
serietà. Richiedere lista e modalità scrivendo o 
telefonando. Luigi Palumbo - Via A. Ristori 8 
00197 Roma. Tel. 06/802783. 

Causa cambio sistema, realizzo software per 
Apple. Più di 1000 programmi a disposizione. 
Invio lista su richiesta. Oggioni - Via Gonza- 
les, 4 - 20139 Milano. Tel. 02/5397867. 

Vendo Sinclair QI. completo di accessori e pro- 
grammi e coperto di garanzia a lire 1 .390.000. 
Massima serietà. Dante Vialetto - Via Beltra- 
me 9 - 21057 - Olgiatc Olona (VA). Tel. 033 1 - 
638521. 

Vendo Package per sviluppo mangimi zootec- 
nici comprensivo di ottimizzazione: date le ma- 
terie prime e le caratteristiche del mangime 
desiderato calcola la formula (mangime + 
razione) che al minor costo soddisfa lutti i 
vincoli. Disponibile per CBM 64 é personaliz- 
zabile per qualsiasi personal/ mini/ mainfra- 
me. Eventualmente contatto Software Houscs 
interessate commercializzazione. Roberto 
Mucci - Via Franzcla 4/a - 351 35 Padova. Tel. 
049/615088 ore pasti. 


TI 99/4 A. Ottimi Prog. TI Basic (cassetta -i 
listati f guida completa all'uso) 3 Tolocal- 
cto-Plus I6K’ (Sviluppano sistemi ad alta 
probabilità di vincita, integrali, semnntegrah. 
ridotti, derivati, statistici, correzione errori, 
con qualsiasi condizionamento e fino a 10 000 
colonne') L 12 000. 14 giochi stimolanti e im- 
pegnatiti I6K' • Archivio su cassetta (3000 
righe su una C 60) + Gestione e contabilita 
negozi L. 15.000; oppure tutti i 19 prog. L 
20.000 Richiedere con vaglia postale o asse 
gno a Giorgi Ivano - Via Torre Pincamuno - 
25050 (BS) Garanziasoddisfalti o rimborsa- 
ti! Tel 0364-55446 

TI 99/4A 26 listali originali inediti a I. 10 00O 
spedire l'importo a mezzo vaglia o bolli Oltre 
1000 programmi per lune le configurazom. 
giochi, gestionali, grafica didattica, ingegneria 
speciale Assemhlcr disegni 3D con rotazioni 
ctc . Koala joystick, giochi inediti, suhroutinc 
grafiche velocissime, grafica III Res su stam 
panie, compilatore per X- Basic richiedono 
32K + disco Perlini Paolo - Via 21 Gennaio 
152 - 61020 Montccchio(PS) Richiedi la lista 
per eventuali scambi 

Per ( ommodnre 64 vendo centinaia di prò 
grammi su nastro o disco: gestionali, bellissimi 
giochi in linguaggio macchina, linguaggi di 
programmazione, utility, muiscali ecc Per in- 
vio listino o per informazioni scrivere o telefo- 
nare a Dominami Stefano - Via Tommaseo. 
18 • 21100 Varese Tel. 0332-229909. 

Vendo a sole L. 1 5.000 per TI 99/4A conexten- 
ded basic programma inedito su cassetta per 
sviluppo sistemi integrale o ridotto. Riduzioni 
su n. max c min dei segni “l-X-2" sul totale 
partite e/o su sene B-C' e/o su correzioni max e 
min della colonna base c/o su n max e min di 
macchie Per ordinare scrivere o telef a Do- 
menico Bocchelli - Via D Fontana. 27 is. 21 
(80128) Napoli tei. 081 254751 ore 18-21. 

Mac Intosh anche SI 2K consulenza hardware r 
software Vendo - personalizzo programmi d: 
ogni genere - sviluppo qualsiasi procedura - 
specializzato in procedure di gestione studi 
professionali (medici, legali ) - massima se- 
rietà - tempi brevissimi - Tutta la documenta- 
zione Mac disponibile Alessandro Menicucci 
Via S. Silverio. 31 - 00165 Roma Tel 
06/6384180. 

Apple compatibili dotali di 2 microprocessori 
(6S02-Z 80), 64 K di RAM c pad numerico 
separato - disk drive, monitor, stampanti, in- 


HAI UN 

TI 99/4A? 

È disponibile a L. 180.000 
più spese di spedizione, 
in contrassegno il modulo 

SSS - EXTENDED BASIC 

Pulsemasler srl - Via Puccini. 3 
Tel. 039/462317 - 20035 LISSONE (MI) 


MCWeMC.o/ilpiMr ri 38 - l&walo 1985 


ccc e mininoppy. Dilla importatrice offre 

pclilivi. Per dimostrazioni contattare: BEC99 
- P.zza Garibaldi. 44 - Fidenza (PR), Tel. 
0524/83030. 

Vendo per Apple 1 1 e compatibili - schede sintesi 
vocale - 80 colonne- Time clock < PRO-DOS) - 
/-SII - Language Card - Drive controller e 
Disk Drive Slim Line con manuali ed eventua- 
le software a prezzi interessanti. Zuin Adriano 
Via M. Buonarroti. I - 20030 Senago (MI). 
Tel. 02-99010421. 

Per Commodore 64 vendiamo, a prezzi modici. 

ni programmi di ogni genere (gestionali, 
utilitv. grafica, ccc.) completi di manuali. Inol- 
isponibili per Hewlett Packard 150: Visi- 
cale. Microplan. multiplun, Lotus. Simphonv. 
dBase II. MBA Contesi. Basic. Fortran. Cò- 
mi. Pascal. Assembler. Meniomaker. Word- 
tar. Graphic. Piclure. Pertecl. PCF. Condor. 
Della. Perl, Statistica. DOS avanzato, conta- 
bilità generale, magazzino e fatturazione, con- 
inio. studi medici. Disponiamo, inoltre, 
di ampia documentazione tecnica sul sistema 
I IP 1 50. Richiedere SOFT GUIDE 64 o 150. 
■gando francobollo, a: Pocket Group - V 
toruso. 34 - 70124 Bari. 

ido software per Apple. Programmi geslio- 
i. di ingegneria, di grafica, utility, giochi. 
. con relativa documentazione. F ra le ultime 
zita, eccezionali programmi di grafica in 
doppia risoluzione. Blocco di 10 programmi a 
’.. 150.000. Rivolgersi a: Gianluca Pomponi - 
' Raffaello 5 - 56020 Castel del Bosco (PI). 


I. 057 1 - 


Oli». 


WORD/PROCESSOR. Possibilità d 

:o stracciato. Per maggiori infor 
tre o telefonare a: Ugo Paleri 
a Cannicci n" 2 - 50018 Scandio 
Tel. 055 252115. 


Vendo Spectrum 48 K con interfaccia parlante 
Currah. completo di 30 fra i migliori program- 
mi in commercio (giochi. Utilities ccc.) al prez- 
zo irripetibile di L. 400.000. (Valore commer- 
ciale L. 600.000). Telefonare ore ufficio al 
01 0/5640 16 chiedendo di Carlo Mognaschi - 


Per Commodore 64: Tot Professional: avendo 
ricevuto una copia in regalo e non essendo 
interessalo alla compilazione delle schedine, 
vendo il programma in mio possesso, inoltre 
tendo eccezionale allineatorc testina drive 1541 
per via Software, che risolve l'80"„ dei proble- 
mi causati dalla cattiva o impossibile lettura 
del dischetto. Disponibile anche su cassetta. 
Vendo inoltre circa 1 500 programmi, tra cui 
200 utility. Scrivere solo se interessati. Giusep- 
pe Buchctli- Via Bolzano 24 - 640 14 Marlinsi- 
euro (TI ) 

Nuovissimo Data Base “DB" inedito per Apple 
con incredibile velocità di ricerca non compila- 
to vendiamo lire 50.000 inoltre nuovissima fat- 
turazione inedita per Apple lire 300.000. Tele- 
fonare al 02 4520526 - 4526105. Il tuo compu- 
ter Via Novara 383 - 20153 Milano. Cavallo 
Massimiliano - Via Novara 383 - 20153 Mila- 


Tastiere professionali per ZX Sinclair. Puoi 
scegliere fra numerosi modelli, da L. 49.0IM): 
semplice inserzione, ospitano computer, inter- 
faccia I e alimentatore. Inoltre abbiamo: O- 
MNICARD 55 meravigliosa interfaccia Spoe- 
tami. QUADRUSUPP - EXP 3S4S - SBOX. 
Tutte realizzazioni esclusive della MICROCY- 
BER ELETTRONICA P.zza Isci. 28 - Cese- 
na. Tel. 0547,20890. Allegando il bollo riceve- 
rai ampia documentazione. 

Commodore 64, Sharp 700. tutti gli MSX. 
CBM 8000, Commodore 16 e 4 plus, Amstrad. 
assortimento enorme di programmi originali c 
di produzione propria. Per 64 ultimissime novi- 
tà di giochi, gestionali e utilità. Per Sharp 700. 
MSX. CBM 1 6 e Amstrad eccezionale serie di 
programmi di produzione propria c tantissimi 
giochi a prezzi eccezionali, Computer House 
di Gìovannelli Claudio - Via Ripamonti 194 - 
20141 Milano. Tel. ab. 02 536926. lei. ulT. 
02 563105. 


Software Ilouse E&S informatica Srl Napoli. 
Via Belvedere 1 1 1 - 80 1 27 - Tel. 08 1 640854 ha 
realizzato SW altamente professionale per: in- 
gegneria civile, magazzino grossisti, studi me- 
dici. rappresentanti, anagrafe per scuole, club, 
parrocchie ecc. su Olivetti M24. CBM 64. Ql. 
Sinclair TI 99/4A. Sono disponibili accesso: 
periferiche per QL Sinclair accoppiatori ai 
stiri. ULA.Z80. 6510. 6526. ROM 6581 Plus 
Sinclair ecc. Cavetti RS232 QL. Schede RS 
232 c 32 K espansione TI 99/4A ecc. 

conti correnti. Funziona con floppy o con ca 
setta: permette di gestire fino a 10 c/c diver 
per un totale di 135 operazioni per ogni c 
saldo liquido, saldo contabile per ogni c/c o i 
totale. Estratto conto cte. Solo L. 120.000. 
Informazioni: Attuati Luca - Via Rocca 18 - 
24055 Cologno (BG). Tel. 035/896230. Ore 
20.30-21.30. Riceverete il manuale. 

Per Apple He vendo schede 64 K + 80 colonne 
a L. 160.000. Per Apple II o compatibili: schede 
80 colonne tipo Videx con softswitch incorpo- 
rato a L. 140.0(8); buffer di tastiera a 64 carat- 
teri L. 45.000: schede colore RGB a L. 35.000; 
espansione I6K RAM (attiva il PRODOS) a 
L. 95.000 - Prezzi IVA esci.: materiale nuo 
garantito. Ricci Rinaldo - Via Giusti. 
18038 Sanremo (IM). Tel. 0184/ 76355 
882095. 

Ambosessi ovunque residenti guadagnerete cs 
guendo serio lavoro anche inerente l'cleltror 
ca. in casa o fuori casa, anche metà giornata. 
Per informazioni senza impegni scrivere alle- 
gando i francobolli per la risposta a: Ditta 
“CDA" - Casella Postale. 3160/SUCC. 3 
REP.MC = 47100 Ferii - Galleria Cotogni. 8. 

Il “Gruppo Utilizzatori Computer - Napoli" 
annuncia l'apertura della nuova sezione dedi- 
cata agli MSX che si affianca alla già lanciatis- 
sima sezione Sinclair. Se possiedi uno Spec- 
trum oppure un computer MSX scrivici. Potrai 
far parte del club ed entrare in contatto © 
centinaia di amici in tutta Italia! Scrivici alle- 
gando due bolli lettera avrai anche l'adesiv 
regalo! G.U.C. Napoli c/o Doti. Roberto Chi- 
menti - Via Luigi Rizzo. 18 - 80124 Napoli- 
Tei. 081/617368 (prenderà il 7623121 . JtC 


PORTA PORTESE 
VIA DI PORTA MAGGIORE. 95 
00185 ROMA 

* * * 

TEL. 06-770041 

INSERZIONI GRATUITE 

SETTIMANALE DI ANNUNCI GRATUITI 
OLTRE 100 PAGINE CON 48 RUBRICHE 
PIÙ DI 18.000 ANNUNCI - 300.000 LETTORI 
I TUTTI I VENERDÌ IN EDICOLA I 



MCmicrocornpuler n. 38 - feooraio 1980 




SCOPRI LA D IFFERENZA DYSAN 


Perchè Dysan? 
Le Quattro 
Ragioni Per 
Preferire la 
Differenza 
Dysan 




1 100% di superficie 
i testata “error free” 


2 Esclusiva tecnica 
i di Burnishing 


3 Speciale 
• lubrificazione 


4 


Certificazione 
« totale 


Solo Dysan garantisce che 
tutta la superficie della 
diskette sia realmente 
100% "èrror free”: un test 
esclusivo certifica le tracce 
e lo spazio tra le tracce 
assicurando prestazioni 
■‘error free” anche in 
presenza di 
disallineamento delle 
testine. 


Solo Dysan garantisce una 
superficie "a specchio” 
grazie alla sua avanzata ed 
unica tecnica di 
“burnishing” - questo 
risultato assicura un 
miglior segnale sulle 
tracce, una minor 
turbolenza sulle testine, 
consentendo un sicuro 
mantenimento dei dati 
dopo milioni e milioni di 
rotazioni. 


Solo Dysan garantisce, 
mediante uno speciale 
procedimento di 
lubrificazione, ottenuto 
trattando la superficie con 
il proprio esclusivo 
lubrificante DY 10, che le 
prestazioni “error free” 
siano esaltate e mantenute 
nel tempo. 


Solo Dysan garantisce, con 
il suo metodo automatico 
di controllo qualità di tutta 
la produzione (risultato di 
una tecnologia leader nel 
mondo) che ogni diskette 
prodotta sia stata 
singolarmente testata e 
certificata. 



datamatic 


Datamatic S.p.A. 
via Volturno, 46 
20124 Milano 
tei.: 02/6073876 (5 linee r. 
telex: 315377 SADATA I 


Filiale di Roma 
via Città di Cascia, 29 
a.) tei. 06/3279987 






j^cippkz 

Ormai si sa: 

prima di acquistare un Personal Apple 
conviene sempre parlarne con noi. 


Roma ■ via Flavio Domiziano. 10 ■ tei. 06.5126700/5138023 
Roma - Via F. Satolli. 55157159 - tei. 06.6386096/6386146 
Roma ■ via Tuscolana, 350/350a - tei. 06. 7943980 
Roma - via Nemorense, 14/16 ■ tei. 06.858296 
Roma - viale Jonio, 333/335 - tei. 06.8170632 
Gaeta - lungomare Caboto, 74 ■ tei. 0771.470168' 

Latina - via A. Diaz, 14 ■ tei. 0773.495285 
Viterbo - via Palmanova, 12c ■ tei. 0761.223977 


bit computers 


il piu grande in Italia. 


COMPUTER 

neb